Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 1, 2010 13:46:15

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

redirect на get_absolute_url

Всем привет. Признаюсь честно, не понимаю зачем нужна приблуда get_absolute_url =) Т.е. полное непонимание этой штуки. Но в документации описывается мол, вроде как верно с точки зрения DRY использовать get_absolute_url )) Тогда возникает вопрос. Как ее использовать?
Сейчас я использую наименование url'a. Т.е. что-то вроде

url(r'^$/(?P<id>)', func, name='main')
А потом через HttpRequestRedirect(reverse('main'))
Сейчас не говорим о синтаксисе. Я хочу понять принцип. А как тогда через get_absolute_url вернуться на страницу? Или я что-то не догоняю?



Офлайн

#2 Фев. 1, 2010 14:39:01

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

redirect на get_absolute_url

get_absolute_url должен возвращать url по которому доступен данный объект. С редиректами или чем-то таким о никак не звязан.



Офлайн

#3 Фев. 1, 2010 14:49:06

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

redirect на get_absolute_url

Как уже написали выше - get_absolute_url должен возвращать url объекта. Например, ты в шаблоне делаешь список записей. Ты можешь записать ссылки до них так:

<a href="/show/{{ entry.id }}/">...</a>
Но когда ты захочешь что-то изменить, то придется это менять в шаблонах. Можно записать так:
<a href="{{ url main entry.id }}">...</a>
Но, возможно, в будущем ты захочешь сделать url'ы по slug'у. Тебе опять придется менять везде, т.к. ты будешь передавать уже не id, а slug. Гораздо проще сделать метод, который тебе всегда будет возвращать url объекта.
<a href="{{ entry.get_absolute_url }}">...</a>



Отредактировано (Фев. 1, 2010 14:49:37)

Офлайн

#4 Фев. 1, 2010 15:05:30

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

redirect на get_absolute_url

ааа.. Ясненько. Сейчас разобрался..
Спасибо за скорую помощь)



Офлайн

#5 Фев. 1, 2010 16:52:03

SvartalF
От:
Зарегистрирован: 2008-06-29
Сообщения: 73
Репутация: +  0  -
Профиль   Отправить e-mail  

redirect на get_absolute_url

К выше описанному, не

{{ url main entry.id }}
а
{% url main entry.id %}



Офлайн

#6 Фев. 1, 2010 16:55:21

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

redirect на get_absolute_url

действительно :) спасибо.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version