使用django的ModelFormMixin的正确方法是什么?

时间:2013-02-11 00:01:05

标签: django django-forms django-views

我已经阅读了关于此的文档,但我似乎无法让django的ModelFormMixin正常工作。这就是我在urls.py中所拥有的:

...
url(r'^vendors/edit/(?P<pk>\d+)/$', 'vendor_edit', name='vendor_edit'),
...

并在views.py中:

class VendorEditView(DetailView, ModelFormMixin):
    form_class = VendorForm
    model = Vendor
    success_url = reverse_lazy('vendor_list')
    template_name = 'vendor_edit.html'

和模板:

<form action='.' method='post'>{% csrf_token %}
    {{ form }}
    <button>Save</button>
</form>

除了DetailViewViewTemplateViewFormView)之外,我尝试将其混合到不同类型的视图中,但没有运气。

我期望发生的是,当我转到/vendors/edit/1时,页面上会出现一个表单,其中已填写对象的详细信息以进行编辑。我得到的是一个空白表单,没有表单,或405 HTTP响应。有什么明显的东西我在这里不见了吗?

1 个答案:

答案 0 :(得分:1)

想出来:需要使用django的UpdateView和mixin才能让它运转起来。

编辑:根据评论,无需将其混合到UpdateView,因为它已经包含在继承链中。