【问题标题】:Django DeleteView form loads, but somehow does not delete the itemDjango DeleteView 表单加载,但不知何故不删除该项目
【发布时间】:2020-10-04 10:27:28
【问题描述】:

我一直在尝试实现 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")
]

【问题讨论】:

    标签: django django-models django-views django-templates


    【解决方案1】:

    确认删除页面应该是对 get 被调用的相同 url 的 post 调用,目前您指向的是不同的 url。

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

    改成

    <form action="" method='POST'>
    

    【讨论】:

    • action="" 无效,W3C 建议如果其值为空,则宁可完全删除该属性。
    猜你喜欢
    • 2020-10-04
    • 1970-01-01
    • 2013-03-08
    • 1970-01-01
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多