2013-02-11 91 views
1

我已阅读关于此的文档,但我似乎无法让django的ModelFormMixin正常工作。这是我在urls.py:使用django的ModelFormMixin的正确方法是什么?

... 
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> 

我已经试过了混合成不同的类型除了DetailViewView,TemplateView,FormView)之外的意见也没有运气。

我希望发生的事情是,当我转到/vendors/edit/1时,表单在页面上,对象的详细信息已经填入进行编辑。我得到的是一个空白表单,没有表单或HTTP响应。有什么明显的我在这里失踪?

+0

你能分享你的模板文件的内容吗? – ozk 2013-02-11 00:03:44

回答

1

想出来:需要使用django的UpdateView与mixin才能正常工作。

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

+0

你不需要使用mixin,它已经是'UpdateView'的父类了' – 2013-02-13 09:43:29

+2

你可能会发现这个方便:) http://ccbv.co.uk/ – meshy 2013-02-14 09:23:06

+0

@AndrewIngram啊,看起来你是对的。我通常喜欢django文档,但发现它们在这里非常混乱: - /(并且我已经使用了多年!) – 2013-02-14 22:40:05

相关问题