Django-在单个视图中添加,删除和更新模型

时间:2018-07-27 10:06:41

标签: django django-models django-forms django-views django-class-based-views

如何在一个 views.py 中添加新实例,删除实例并更新模型的实例?

目前,我有 views.py ,如下所示:

class BHA_UpdateView(UpdateView):
    template_name = 'bha_test.html'
    model = BHA_List
    pk_url_kwarg = 'pk_alt'
    fields = '__all__'

我知道我可以使用以下格式更新当前模型实例:

  <form method="POST">
    {% csrf_token %}
    {{ form.as_p }}
    <input type="submit" class='btn btn-primary' value="Submit">
  </form>

但是,如果要在同一页面上删除,创建和更新怎么办?如果我要在单个页面中添加,删除和更新模型实例,我不确定该怎么办。

理想情况下,如果用户单击页面上的DeleteCreateUpdate按钮,则将显示一个模式屏幕,并且在该模式屏幕中,用户将能够去做他想做的任何事情。

我该怎么办?是否可以继承多个CBV,例如:class BHA_UpdateView(UpdateView, CreateView, DeleteView):?如果没有,我该怎么办?

1 个答案:

答案 0 :(得分:0)

您可以通过创建不同的表单并为其指定不同的名称,然后按名称在视图中处理这些表单来实现(使用if)。假设删除它会删除对象并重定向到该页面,而提交表单则会创建对象并重定向。