【问题标题】:Django, trouble deleting a record?Django,删除记录有问题吗?
【发布时间】:2018-09-24 22:04:17
【问题描述】:

我有一个基于 Django 类的删除视图

它由模板调用(DetailsView,底部有一个按钮,我希望能够单击该按钮以删除记录)

模板中的代码是这样的:

<div>
  <a href="{% url 'update_candidate' object.pk %}" class="button">Edit</a>
</div>

<form method="post" action="{% url 'delete_candidate' object.pk %}" class="inline">
  {% csrf_token %}
  <input type="hidden" name="object_pk" value="{{ object.pk}}">
  <button type="submit" name="delete" value="delete" class="link-button">
  </button>
</form>

update_candidate 使用 object.pk 工作...一个页面显示了正确的对象,但如果我尝试删除我会出错

请求方法:POST 请求 URL: http://127.0.0.1:8000/candidates/delete_candidate/1/ Django 版本: 2.0.6 异常类型:ImproperlyConfigured 异常值:DeleteCandidateView 缺少 QuerySet。定义 DeleteCandidateView.model、DeleteCandidateView.queryset 或覆盖 DeleteCandidateView.get_queryset()。

POST 变量值 object_pk '1' csrfmiddlewaretoken
'Vp3McmK88riynpBJ9U2yPRXNvI3i8ufeepY2FnRt1cktW7aw48p7JsYTnFWvk4kD'

删除'删除'

有人对如何解决此问题有任何想法吗?

【问题讨论】:

    标签: django django-forms django-views


    【解决方案1】:

    消息说某些使用通用 CBV DetailViewDeleteView 的视图设置错误,在这种情况下,DeleteCandidateView 可能缺少以下一些必需属性:

    • model,
    • queryset,

    或者你需要覆盖DeleteCandidateView.get_queryset


    这取决于您使用的基于通用类的视图,但通常看起来像:

    class DeleteCandidateView(DetailView):
    
        model = DeleteCandidate # or whatever your model is called
    

    【讨论】:

    • 谢谢,我发现我的错误,这是由于我的模型...我有 Model = 而不是 model = 。我预计 django 会抛出错误。以后要多加小心。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多