Не найден ответ для 'update-project' с аргументами '('',)'. Испробован 1 шаблон(ы): ['update\\-project/(?P<pk>[0-9]+)/\\Z']
Пытаюсь создать функцию обновления для модели проекта в Django, но столкнулся с проблемой. Вот что у меня есть на данный момент
функция обновления представления
@login_required
def updateProject(request, pk):
project = Project.objects.get(id=pk)
form = ProjectForm(instance=project)
if request.method == 'POST':
project.name = request.POST.get('name')
project.description = request.POST.get('description')
project.save()
return redirect('project', pk=project.id)
context = {'form': form, 'project': project}
return render(request, 'projects/project_form.html', context)
Вот как я вызываю его в шаблоне
<li><a href="{% url 'update-project' project.id %}">Edit</a></li>
и вот что такое urlpattern
path('update-project/<int:pk>/', views.updateProject, name='update-project'),
Что я упускаю?
Для перенаправления на другой URL я обычно использую:
return HttpResponseRedirect(reverse('update-project', args=(project.id,)))
вместо вашего
return redirect('project', pk=project.id)
что, вероятно, вызывает вашу ошибку после POST