Django.template.exceptions.TemplateDoesNotExist: documents/project_confirm_delete.html
Я использовал Django 3.2.9 и использовал класс для того, чтобы удалить проект. Вот мой код.
from django.views.generic.edit import CreateView, DeleteView, UpdateView
class ProjectDeleteView(DeleteView):
http_method_names = ['get']
model = Project
pk_url_kwarg = "pk"
def get_success_url(self):
return reverse("documents:draftdocumentview")
Когда я позвонил, он сказал следующее:
django.template.exceptions.TemplateDoesNotExist: documents/project_confirm_delete.html
Я не уверен насчет файла project_confirm_delete.html. Должен ли я сделать html файл? Или он поддерживается из шаблона Django?
Вам нужно создать папку templates внутри приложения, затем создать другую папку с именем приложения внутри templates, затем создать project_confirm_delete.html внутри нее. что-то вроде этого:
documents
----templates
-------------documents
----------------------project_confirm_delete.html
Теперь внутри файла project_confirm_delete.html вам нужна форма, предполагая, что вы используете crispy и блоки, она должна выглядеть следующим образом:
{% extends 'design/base.html' %}
{% load crispy_forms_tags %}
{% block content %}
<h1>Deleting File, Are You Sure?</h1>
<div class="media-body">
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
<fieldset class="form-group">
{{ form|crispy }}
</fieldset>
<div>
<button type="submit">Yes Delete</button>
</div>
</form>
</div>
{% endblock content %}
Когда я создал функцию и вызвал ее, она работала нормально. Вот код.
def ProjectDelete(request,pk):
#project_id = request.GET.get('pk')
project = Project.objects.filter(id=pk)
project.delete()
return redirect(reverse("documents:draftdocumentview"))