#django #django-views
#джанго #джанго-просмотры
Вопрос:
Я использовал 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?
Комментарии:
1. Файл html для шаблона действительно должен существовать. Вам нужно создать html-файл и определить, что вы хотите поместить в файл.
Ответ №1:
Когда я создал функцию и вызвал ее, она работала хорошо. Вот код.
def ProjectDelete(request,pk): #project_id = request.GET.get('pk') project = Project.objects.filter(id=pk) project.delete() return redirect(reverse("documents:draftdocumentview"))
Ответ №2:
Вам нужно создать папку шаблонов внутри приложения, а затем создать другую папку, такую же, как имя приложения, внутри шаблонов, а затем создать 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 %} lt;h1gt;Deleting File, Are You Sure?lt;/h1gt; lt;div class="media-body"gt; lt;form method="POST" enctype="multipart/form-data"gt; {% csrf_token %} lt;fieldset class="form-group"gt; {{ form|crispy }} lt;/fieldsetgt; lt;divgt; lt;button type="submit"gt;Yes Deletelt;/buttongt; lt;/divgt; lt;/formgt; lt;/divgt; {% endblock content %}