Я пытался реализовать deleteview, однако, хотя форма и загрузка страницы работают нормально, данные в конце не удаляются. Я застрял в этом несколько часов, пожалуйста, помогите мне!

Модель компетенций

class Competencies(models.Model): 
    employee = models.ForeignKey(Profile, blank = False, null = True, on_delete = models.SET_NULL)
    competency_category = models.ForeignKey(competency_category, blank = False, null = True, on_delete=models.CASCADE)
                .
                .

    def __str__(self):
        return self.summary

Views.py - класс DeleteView

from django.views.generic import DetailView, DeleteView
class Competencies_Delete(DeleteView):
    model = Competencies
    template_name = 'GnC/HuNet_DeleteDGC.html'

    def get_object(self):
        id = self.kwargs.get("pk")
        return get_object_or_404(Competencies, id = id)

    def get_success_url(self):
        return reverse('GnC:User_GnC')

HTML-файл, который можно удалить при нажатии кнопки "Удалить"

{%for competencies in Personal_competencies_list%}
<tr>
    <td><a href = '../allusers/{{competencies.id}}/DeleteC'>Delete</a></td>

</tr>
{%endfor%}

HuNet_DeleteDGC.html

{%extends 'utilitypage.html'%}
{%block content%}

<form action="{% url 'GnC:User_GnC'%}" method='POST'>
    {%csrf_token%}
    <h4>Do you want to delete "{{object.summary}}"?</h4>
    <p><input type ="submit" value = "Confirm"></p>
    <p><a href="{% url 'GnC:User_GnC'%}">Cancel</a></p>
</form>

{%endblock%}

urls.py

app_name = 'GnC'
urlpatterns = [
path('allusers/<int:pk>/DeleteC', views.Competencies_Delete.as_view(), name ="Delete_User_Competencies")
]
0
iZLaPrix 15 Июн 2020 в 06:37

1 ответ

Лучший ответ

Страница подтверждения удаления должна быть post вызовом на тот же URL-адрес, который был вызван get , в настоящее время вы указываете на другой URL-адрес.

<form action="{% url 'GnC:User_GnC'%}" method='POST'>

Измените это на

<form action="" method='POST'>
0
Lag11 15 Июн 2020 в 07:01