Usé Django 3.2.9 y usé una clase para eliminar un proyecto. Aquí está mi código.
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")Cuando lo llamé dijo así;
django.template.exceptions.TemplateDoesNotExist: documents/project_confirm_delete.htmlNo estoy seguro acerca de project_confirm_delete.html. ¿Debo hacer el archivo html? ¿O es compatible con la plantilla de Django?
Cuando creé una función y la llamé, funcionó bien. Aquí está el código.
def ProjectDelete(request,pk): #project_id = request.GET.get('pk') project = Project.objects.filter(id=pk) project.delete() return redirect(reverse("documents:draftdocumentview"))Debe crear una carpeta de plantillas dentro de la aplicación y luego crear otra carpeta con el mismo nombre de la aplicación dentro de las plantillas y luego crear project_confirm_delete.html dentro de eso.
Algo como esto:
documents ----templates -------------documents ----------------------project_confirm_delete.htmlAhora, dentro del archivo project_confirm_delete.html necesitas un formulario; asumiendo que está usando crujientes y bloques, debería verse así:
{% 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 %}