1

我已经阅读了这方面的文档,但我似乎无法让 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>

DetailView除了( View, TemplateView, ) 之外,我尝试将它混合到不同类型的视图中,FormView但没有成功。

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

4

1 回答 1

1

想通了:需要将 djangoUpdateView与 mixin 一起使用才能使其正常工作。

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

于 2013-02-11T00:17:53.517 回答