Django - 如何创建一个简单的确认视图?

Django - How to create a simple confirmation view?

我正在尝试创建一个视图,要求用户在其中确认更新实例值的操作。我希望视图只有一个提交按钮。我想要的类似于 DeleteView,除了我想要的是更新记录的值而不是删除记录。

我试过使用基于 Class 的 UpdateView,但它要求我指定一个字段参数,我必须在其中指定至少一个字段并且我不想显示任何字段,只显示提交按钮。

这是我的模板现在的样子:

<h4>Complete {{ item.name }}?</h4>

<form method='POST' class="gia-form">
    {% csrf_token %}
    {{ form.as_p }}
    <input type="submit" class="button" value="Complete Item">
    <a href="{% url 'items:home' %}">Cancel</a>
</form>

Url 视图:

url(r'^action/complete-item/(?P<pk>\d+)/$', views.CompleteItemView.as_view(), name='complete'),

我的更新视图:

class CompleteItemView(UpdateView):
    model = models.Item
    template_name = 'items/complete_item.html'
    fields = ("status",)

    def form_valid(self, form):
        form.instance.status = 'completed'
        return super().form_valid(form)

上面我选择了显示状态字段,这是我试图以一种优雅的方式摆脱的,因为我只想显示没有任何字段的确认按钮。

而不是

{{ form.as_p }}

你可以简单地写

<input name="{{ form.status.html_name }}" id="{{ form.status.id_for_label }}"
       value="{{ form.status.value }}" type="hidden">

这将使 status 字段隐藏,只有 Submit 按钮可见。

您是否考虑过使用 Bootstrap Modals

您可以有一个 'Submit' 按钮,该按钮实际上不会提交表单,而是会打开模式,您可以在其中设置表单提交按钮。

您只需要记住在表单标签内创建模式。

您可以这样使用 Javascript:

<script>
$(document).on('click', '.some_class', function(){
return confirm('Are you sure you want to update this?');
})
</script>

并添加 class some_class 到您的按钮