Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 10, 2010 14:24:48

pyOut
От:
Зарегистрирован: 2006-07-16
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

get_absolute_url или reverse

Подскажите что с точки зрения Django более правильно/эффективно/быстрее использовать get_absolute_url или все же reverse?



Офлайн

#2 Янв. 10, 2010 15:53:08

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

get_absolute_url или reverse

Правильно реализовывать get_absolute_url через reverse (точнее через декоратор permalink). Следовательно get_absolute_url становится шорткатом к reverse для конкретного объекта - так что не имеет значения что использовать. Вы можете выбирать в каждом конкретном случае что удобней.



Офлайн

#3 Янв. 13, 2010 00:26:21

AlexKiriukha
От:
Зарегистрирован: 2008-02-03
Сообщения: 81
Репутация: +  0  -
Профиль   Отправить e-mail  

get_absolute_url или reverse

Использую get_absolute_url как описал Daevaorn. Мне кажется это правильнее. Потому что завтра у вас может получиться другое правило создания абсолютного url (например была выборка по id, стала по slug'u). В случае с get_absolute_url Вам не нужно будет менять все места, где Вы реверсили по id на slug (т.е. это уже сделано в одном месте - в get_absolute_url). DRY же :-)



Офлайн

#4 Янв. 14, 2010 03:21:42

tezro
От:
Зарегистрирован: 2009-12-09
Сообщения: 90
Репутация: +  0  -
Профиль   Отправить e-mail  

get_absolute_url или reverse

Кстати, если есть приложение 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)

Офлайн

#5 Янв. 14, 2010 22:45:29

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

get_absolute_url или reverse

def get_absolute_url(self):
return reverse('apps.news.views.your_view_here', kwargs={'slug':self.slug, ... })
Как-то так.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version