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"))
Вернуться на верх