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( ViewTemplateView、 )以外のさまざまな種類のビューに混ぜてみましたがFormView、うまくいきませんでした。

私が期待しているのは、 に移動する/vendors/edit/1と、オブジェクトの詳細が編集用にすでに入力されたフォームがページ上にあるということです。私が得ているのは、空白のフォーム、フォームなし、または 405 HTTP 応答のいずれかです。ここで私が見逃している明らかなものはありますか?

4

1 に答える 1

1

理解した:それを機能させるには、ミックスインでdjangoを使用する必要がUpdateViewありました。

UpdateView編集:コメントごとに、継承チェーンにすでに含まれているため、に混ぜる必要はありません。

于 2013-02-11T00:17:53.517 に答える