Найти - Пользователи
Полная версия: Как передать параметры в представление на основе UpdateView?
Начало » Django » Как передать параметры в представление на основе UpdateView?
1
Alex.py
Здравствуйте! Да, действительно , как их передать.

В представление на основе класса UpdateView передаются:

1) некоторый параметр с именем brif_id
2) некоторый параметр с именем pk

Для меня имеет значение первый, так как нужно сделать перенаправление на success_url , который вычисляется reverse_lazy и в этот url нужно передать первый параметр и ещё один, значение которого уже известно — то есть его можно вручную указать программно.

В классе представления переопределил метод:

 def get_success_url(self,):
	return reverse_lazy('question:questions', kwargs={'brif_id': self.kwargs['brif_id'] , 'edit': '1'})

Вызывается исключение: Not Found — ни одно совпадение не распознается. То ли параметра нет в kwargs.

В каком атрибуте класса UpdateView параметры искать?


Даже если не предоставить success_url, ищется этот url http://127.0.0.1:8000/briefing/questions/2

Ожидаемый, который должен вычислить reverse_lazy: http://127.0.0.1:8000/briefing/questions/2/edit=1

Вот само выражение:

 r'^briefing/questions/(?P<brif_id>[-+]?\d+)/edit=(?P<edit>\d{1})/$'

Просто уже подозрения, что url вычисляется неправильно и берётся из экземпляра модели. А это, очевидно, неправильный url.
Alex.py
Разобрался, спасибо за внимание)

Сам переопределил метод form_valid и делал перенаправление на левый адрес.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB