我已经阅读了关于此的文档,但我似乎无法让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响应。有什么明显的东西我在这里不见了吗?
答案 0 :(得分:1)
想出来:需要使用django的UpdateView
和mixin才能让它运转起来。
编辑:根据评论,无需将其混合到UpdateView
,因为它已经包含在继承链中。