Не найден ответ для '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

Вернуться на верх