Форум сайта python.su
Подскажите что с точки зрения Django более правильно/эффективно/быстрее использовать get_absolute_url или все же reverse?
Офлайн
Правильно реализовывать get_absolute_url через reverse (точнее через декоратор permalink). Следовательно get_absolute_url становится шорткатом к reverse для конкретного объекта - так что не имеет значения что использовать. Вы можете выбирать в каждом конкретном случае что удобней.
Офлайн
Использую get_absolute_url как описал Daevaorn. Мне кажется это правильнее. Потому что завтра у вас может получиться другое правило создания абсолютного url (например была выборка по id, стала по slug'u). В случае с get_absolute_url Вам не нужно будет менять все места, где Вы реверсили по id на slug (т.е. это уже сделано в одном месте - в get_absolute_url). DRY же :-)
Офлайн
Кстати, если есть приложение News с новостями. Вызов элемента новости идёт при обращении по /periodicals/news/2009/jan/01/slug-slug/ В корневом urls.py - (r'^periodicals/news/', include('apps.news.urls')),
Чему равен get_absolute_url новости?
Отредактировано (Янв. 14, 2010 03:22:52)
Офлайн
def get_absolute_url(self):
return reverse('apps.news.views.your_view_here', kwargs={'slug':self.slug, ... })
Офлайн