Django,删除记录有麻烦吗?

时间:2018-09-24 22:04:18

标签: django django-forms django-views

我有一个基于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'

     

删除“删除”

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

1 个答案:

答案 0 :(得分:0)

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

  • model
  • queryset

或者您需要覆盖DeleteCandidateView.get_queryset


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

class DeleteCandidateView(DetailView):

    model = DeleteCandidate # or whatever your model is called