Форум
подписаться на последние сообщения:

Работа с декоратором permalink

godov
#
Всем привет! Решил я, значится, тут попробовать урлы формировать не по старинке, а с помощью декоратора @permalink. Почитал документацию, написал код, код не работает.. Почитал еще раз, погуглил, пошаманил.. Не работает, поэтому пишу сюда )

Вот есть у меня модель, которая из админки джанги должна показывать мне фотку, которую я загрузил (в декоратор я завернул ф-ю get_absolute_url). Вроде все грузится, джанга не ругается. Но когда я нажимаю на просмотр, формируется какая то убогая ссылка, что то вроде

http://localhost/admin/r/10/17/

и ошибка

Reverse for 'list_detail.object_detail' with arguments '('17',)' and keyword arguments '{}' not found.

Кто нить может подсказать что не так?

УРЛы

from django.conf.urls.defaults import *
from photogallery.applications.photoadmin.models import PhotoAlbum, Photo

urlpatterns = patterns('django.views.generic',
url(r'^photoalbums/(\d+)$', 'list_detail.object_detail'),
url(r'^photos/(\d+)$', 'list_detail.object_detail'),
)


Модели

from django.db import models
from django.db.models import permalink
from photogallery.settings import MEDIA_ROOT
import os

class PhotoAlbum(models.Model):
title = models.CharField(max_length=100)
description = models.TextField()

class Meta:
ordering = ['title']

def __unicode__(self):
return self.title

@permalink
def get_absolute_url(self):
return ('list_detail.object_detail', [str(self.id)])


class Photo(models.Model):
item = models.ForeignKey(PhotoAlbum)
title = models.CharField(max_length=150)
image = models.ImageField(upload_to= 'photos')
caption = models.CharField(max_length=250, blank=True)

class Meta:
ordering = ['caption']

def __unicode__(self):
return self.title

@permalink
def get_absolute_url(self):
return ('list_detail.object_detail', [str(self.id)])
Share
godov
#
мож есть какая-нить последовательность действий или еще чего?
godov
#
я пробовал присваивать имена (собственно, это был самый первый вариант), все равно формируется такая ссылка. а вообще, ф-я get_absolute_url() в каком порядке и какие аргументы принимает? может я чо-то не так ей скармливаю?
admin
#
godov,
может быть у вас не верное имя функции? Или оно совпадает с таким же именем в других апликациях.
godov
#
тут я тоже разобрался. просто неверный синтаксис был.. я в коренном файле урлов, в ф-ии include указывал слеш в конце (что то вроде '^blabla/', include(...)), и в файле урлов приложения я указывал открывающий слеш, так что джанга не понимала, что я от нее хочу.


admin, спасибо за помощь )