解决Django中Delete事件失败的问题



这是我一直试图解决过去7天的错误。我是Django的新手

Page not found (404)
Request Method:     POST
Request URL:    http://localhost:8000/projects/delete-project/ce4c5177-eb8f-44b9-9734-04adafd75414/ 
Using the URLconf defined in devsearch.urls, Django tried these URL patterns, in this order:
admin/
projects/ projects/ [name='projects']
projects/ project/<str:pk>/ [name='project']
projects/ create-project/ [name='create-project']
projects/ update-project/<str:pk>/ [name='update-project']
projects/ delete-project/<str:pk>/ [name='delete-project']

在我的delete-object表单上点击提交按钮后出现此消息,该表单正确地引用了被删除的对象name属性…在我看来,这意味着对象已在数据库中找到,并被正确引用。

代码如下:

应用程序url.py

from django.urls import URLPattern, path
from . import views
urlpatterns = [
path('projects/', views.projects, name='projects'),
path('project/<str:pk>/', views.project, name='project'),
path('create-project/', views.createProject, name='create-project'),
path('update-project/<str:pk>/',
views.updateProject,
name='update-project'),
path('delete-project/<str:pk>/',
views.deleteProject,
name='delete-project'),
]

视图功能代码:

@login_required(login_url='login')
def deleteProject(request, pk):
profile = request.user.profile
project = Project.objects.get(id=pk)
if request.method == 'POST':
project.delete()
return redirect('account')
context = {'object': project}
return render(request, 'delete-object.html', context)

确认HTML页面

<form class="form" method="POST" action="'">
{% csrf_token %}
<p>Confirm deletion of '{{object}}'</p>    
<button class="btn btn--sub btn--lg  my-md"><a href="{{request.GET.next}}">Go Back</a></button>    
<a href="delete-object" ><Input class="btn btn--sub btn--lg  my-md" type='submit' value='DELETE' style="color: red;" /></a>
</form>

Create、Read和Update事件工作正常。它只是一个delete事件。我试着在Django社区问这个问题,被告知去阅读Django帮助文档:(我不知道我错过了什么。希望有人能提供一些见解。

感谢您的关注。

您需要替换:

<button class="btn btn--sub btn--lg my-md"><a href="{{request.GET.next}}">Go Back</a></button>

<button class="btn btn--sub btn--lg my-md">Go Back</button>

由于链接与按钮冲突。

Try form as:

<form class="form" method="POST" action="">
{% csrf_token %}
<p>Confirm deletion of '{{object}}'</p>    
<button class="btn btn--sub btn--lg  my-md">Go Back</button>    
<Input class="btn btn--sub btn--lg  my-md" type='submit' value='DELETE' style="color: red;" />
</form>```

最新更新