Django - reverse_lazy и несколько параметров
Я застрял в перенаправлении url после добавления нового объекта. У меня простой класс с методом create и формой.
urls.py:
path('', views.home, name='home'),
path('<int:branch_id>/<int:doc_type_id>/', views.documents, name='documents'),
path('<int:branch_id>/<int:doc_type_id>/add', testForm.as_view(), name='document_add'),
path('<int:branch_id>/<int:doc_type_id>/<int:pk>', detailsView.as_view(), name='details_view'),
form.py:
class TestDocumentForm(ModelForm):
class Meta:
model = Document
fields = '__all__'
views.py:
class testForm(FormView):
template_name = "template/add.html"
form_class = TestDocumentForm
success_url = reverse_lazy('app:home')
И это прекрасно работает.
Но я не знаю, как изменить success_url на основе reverse_lazy и аргументов в функции на основе класса. Мне нужно, чтобы это перенаправляло на страницу подробностей после нажатия кнопки сохранения.
В HTML-коде я знаю, как это сделать.
Я попробовал использовать это решение (т.е. https://stackoverflow.com/a/41905219), поэтому в функции testForm я закомментировал поле sussec_url, добавил что-то вроде этого ():
def get_success_url(self, **kwargs):
reverse_lazy('archive:details_view')
params = urlencode({'branch_id': self.object.branch.id,
...})
...
И я получил ошибку: у объекта 'testForm' нет атрибута 'object'.
Я перепробовал много решений, но не могу перенаправить страницу с несколькими.
Спасибо за любой совет!