Представления на основе класса Django success_url

Я пытаюсь установить success_url в UpdateView на основе класса django, но не могу заставить его работать. Я пробовал синтаксис, предложенный в документах

success_url="/polls/%(slug)s/"

Но это не работает. Как я могу получить доступ к полям модели в success_url?


person thesteve    schedule 13.09.2011    source источник
comment
Это зависит от атрибутов поля объекта. В опубликованном вами примере модель должна иметь поле slug. Публикация кода класса представления также поможет.   -  person mkriheli    schedule 13.09.2011
comment
ОК, кажется, я могу получить доступ к полям модели. есть идеи, как я могу получить доступ к полям связанных моделей?   -  person thesteve    schedule 13.09.2011
comment
См. ответ ниже, который учитывает предоставленную вами информацию.   -  person mkriheli    schedule 13.09.2011


Ответы (1)


Это зависит от атрибутов поля объекта. В опубликованном вами примере модель должна иметь поле slug.

Для связанных полей:

Вы можете попробовать использовать нотацию __ django для связанных объектов (например: user__username) в success_url, не уверен, что это сработает.

ИМО в таких случаях лучше переопределить get_success_url() и вернуть URL-адрес с учетом self.object.

person mkriheli    schedule 13.09.2011
comment
Спасибо, это сработало. На самом деле я смог вообще не устанавливать success_url и разрешить ему автоматически использовать метод объектов get_absolute_url(). - person thesteve; 13.09.2011
comment
Да, это запасной вариант ;-) - person mkriheli; 13.09.2011