Решение проблем с удалением событий в Django
Эту ошибку я пытаюсь решить последние 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']
Это сообщение появляется после нажатия кнопки submit на моей форме 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>
События создания, чтения и обновления работают правильно. только событие удаления. Я пытался задать этот вопрос на Django community, но мне ответили, что нужно читать справочную документацию Django :( Я не понимаю, что я упускаю. Надеюсь, что кто-нибудь сможет помочь.
Спасибо, что посмотрели.
Вам нужно заменить:
<button class="btn btn--sub btn--lg my-md"><a href="{{request.GET.next}}">Go Back</a></button>
To
<button class="btn btn--sub btn--lg my-md">Go Back</button>
Потому что ссылка противоречила кнопке.
Попробуйте форму как:
<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>```