я застрял с ошибкой:
Reverse for 'detail' not found. 'detail' is not a valid view function or pattern name.
, когда я попытался переопределить AssignTaskView
Просмотр.
Логическое обоснование для этого состоит в том, чтобы позволить моему пользователю переназначать Задачи другим без необходимости создавать отдельную задачу для этого, а также вставлять свои пользовательские формы для отображения списка пользователей на выбор.
У меня больше всего вдохновлений от этого конкретного поста:
Перезапись django просмотр с пользовательским контекстом (Django 1.11, Viewflow)
А вот мой код:
url.py
Это фактически позволяет мне переопределить и отобразить мою собственную форму.
path('pipeline/<process_pk>/documents/<task_pk>/assign/', OverrideTaskView.as_view(), {
'flow_class': Pipeline,
'flow_task': Pipeline.documents
}),
проблема заключается здесь:
views.py
class OverrideTaskView(AssignTaskView,FormView):
form_class=AssignForm
def get_form_kwargs(self):
kwargs = super(OverrideTaskView, self).get_form_kwargs()
kwargs.update({'id': self.request.user})
return kwargs
def get_context_data(self, **kwargs):
context = super(AssignTaskView, self).get_context_data(**kwargs)
context['activation'] = self.activation
return context
def form_valid(self, form):
if '_assign' or '_continue' in request.POST:
form.save(commit=False)
assigned = form.cleaned_data.get('user')
self.activation.assign(assigned)
self.success(_('Task {task} has been assigned'))
return HttpResponseRedirect(self.get_success_url())
else:
return self.get(request, *args, **kwargs)
Я подозреваю, что это как-то связано с get_success_url? Ошибка появляется только после того, как я нажимаю кнопку подтверждения, помогите!
edit
Это шаблоны URL, найденные на моей странице отладки:
^pipeline/(?P<process_pk>\d+)/documents/(?P<task_pk>\d+)/assign/$
[name='documents__assign']
pipeline/ ^archive/$ [name='archive']
pipeline/ ^action/cancel/(?P<process_pk>\d+)/$ [name='action_cancel']
pipeline/ ^(?P<process_pk>\d+)/$ [name='detail'] #<--- its here!!
полная ошибка проследить назад
Internal Server Error: /pipeline/35/documents/195/assign/
Traceback (most recent call last):
File "C:\Users\Dion Neo Wen Shun\AppData\Local\Programs\Python\Python38\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
response = get_response(request)
File "C:\Users\Dion Neo Wen Shun\AppData\Local\Programs\Python\Python38\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Users\Dion Neo Wen Shun\AppData\Local\Programs\Python\Python38\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Dion Neo Wen Shun\AppData\Local\Programs\Python\Python38\lib\site-packages\django\views\generic\base.py", line 71, in view
return self.dispatch(request, *args, **kwargs)
File "C:\Users\Dion Neo Wen Shun\AppData\Local\Programs\Python\Python38\lib\site-packages\django\utils\decorators.py", line 43, in _wrapper
return bound_method(*args, **kwargs)
File "C:\Users\Dion Neo Wen Shun\AppData\Local\Programs\Python\Python38\lib\contextlib.py", line 75, in inner
return func(*args, **kwds)
File "C:\Users\Dion Neo Wen Shun\AppData\Local\Programs\Python\Python38\lib\site-packages\viewflow\decorators.py", line 213, in _wrapper
return view(request, **kwargs)
File "C:\Users\Dion Neo Wen Shun\AppData\Local\Programs\Python\Python38\lib\site-packages\viewflow\flow\views\task.py", line 197, in dispatch
return super(AssignTaskView, self).dispatch(request, *args, **kwargs)
File "C:\Users\Dion Neo Wen Shun\AppData\Local\Programs\Python\Python38\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
return handler(request, *args, **kwargs)
File "C:\Users\Dion Neo Wen Shun\AppData\Local\Programs\Python\Python38\lib\site-packages\viewflow\flow\views\task.py", line 175, in post
self.success(_('Task {task} has been assigned'))
File "C:\Users\Dion Neo Wen Shun\AppData\Local\Programs\Python\Python38\lib\site-packages\viewflow\flow\views\mixins.py", line 90, in success
self.report(message, level=messages.SUCCESS, fail_silently=fail_silently, **kwargs)
File "C:\Users\Dion Neo Wen Shun\AppData\Local\Programs\Python\Python38\lib\site-packages\viewflow\flow\views\mixins.py", line 69, in report
process_url = reverse('{}:detail'.format(namespace), args=[self.activation.process.pk])
File "C:\Users\Dion Neo Wen Shun\AppData\Local\Programs\Python\Python38\lib\site-packages\django\urls\base.py", line 87, in reverse
return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
File "C:\Users\Dion Neo Wen Shun\AppData\Local\Programs\Python\Python38\lib\site-packages\django\urls\resolvers.py", line 677, in _reverse_with_prefix
raise NoReverseMatch(msg)
django.urls.exceptions.NoReverseMatch: Reverse for 'detail' not found. 'detail' is not a valid view function or pattern name.
[08/Apr/2020 22:37:24] "POST /pipeline/35/documents/195/assign/ HTTP/1.1" 500 129534
Я действительно не знаю, что происходит!