1

私はこのコードを持っています

class ObjectCreate(CreateView):

    def form_valid(self, form):

このフォームが既にオブジェクト インスタンスにバインドされていることを知りたいのですが、form.save を使用するか、モデル インスタンスに手動でバインドする必要があります。

4

2 に答える 2

1

はい、フォームform_validは綴じられています。

これは、 のコードを見ればわかりますProcessFormView

def post(self, request, *args, **kwargs):
    form_class = self.get_form_class()
    form = self.get_form(form_class)
    if form.is_valid():
        return self.form_valid(form)

バインドされたフォームが によってインスタンス化されself.get_form(form_class)form_validフォームが有効な場合にのみメソッドが呼び出されることがわかります。

ModelFormMixinによって使用される は、デフォルトでオブジェクトを保存することに注意してくださいCreateView。何をしようとしているのかによっては、オーバーライドする必要がない場合もありますform_valid

于 2012-10-24T09:24:46.320 に答える
0

フォーム クラスを取得して、 boundedを要求できます。

    form_class = self.get_form_class()
    if form.is_bound:
        ...
于 2012-10-24T09:22:29.220 に答える