django - Django,删除记录有问题吗?
问题描述
我有一个基于 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 异常类型:错误配置异常值:DeleteCandidateView 缺少 QuerySet。定义 DeleteCandidateView.model、DeleteCandidateView.queryset,或覆盖 DeleteCandidateView.get_queryset()。
POST 变量值 object_pk '1' csrfmiddlewaretoken
'Vp3McmK88riynpBJ9U2yPRXNvI3i8ufeepY2FnRt1cktW7aw48p7JsYTnFWvk4kD'删除“删除”
有没有人对如何解决这个问题有任何想法?
解决方案
消息说使用通用 CBV DetailView或DeleteView的某些视图设置错误,在这种情况下,DeleteCandidateView 可能缺少以下一些必需属性:
model
,queryset
,
或者你需要覆盖DeleteCandidateView.get_queryset
这取决于您使用的基于通用类的视图,但它通常看起来像:
class DeleteCandidateView(DetailView):
model = DeleteCandidate # or whatever your model is called
推荐阅读
- javascript - jQuery UI 对话框下的背景覆盖没有按预期覆盖图像
- c# - Oracle 19.3 更改查询通知 Azure 不工作
- cypress - 点击recaptcha cypress 3.8.-
- presto - 将日期格式“2020 年 8 月 14 日 12:30:42”识别为日期时间类型
- python - 无法在python中声明全局变量
- mysql - 在mysql中显示特定月份的记录
- angular - Angular 提供者 - 无论我是否使用它们,我都会得到相同的结果?
- python - 在python中使用2个命名管道
- mongodb - Mongo DB UpdateOne 与 c#
- amazon-web-services - aws api gateway 使用计划限制高于默认值