と呼ばないCBV法form_valid() 。興味深いことに、forms.pyのclean
メソッドが呼び出されます。ジャンゴ:私は次のように<code>form_valid()</code>関数をオーバーライドしています私の<code>CreateView</code>クラスで
エラーは表示されません(したがって、表示するトレースバックがありません)。ユーザーはフォームに再度リダイレクトされます。 この動作の理由は何ですか? 私はDjango 1.5とPython 2.7を実行しています。
と呼ばないCBV法form_valid() 。興味深いことに、forms.pyのclean
メソッドが呼び出されます。ジャンゴ:私は次のように<code>form_valid()</code>関数をオーバーライドしています私の<code>CreateView</code>クラスで
エラーは表示されません(したがって、表示するトレースバックがありません)。ユーザーはフォームに再度リダイレクトされます。 この動作の理由は何ですか? 私はDjango 1.5とPython 2.7を実行しています。
form.instance.user = self.request.userが間違っている
このバリアントを試してください:
def form_valid(self, form):
self.object = form.save(commit=False)
if self.request.user.is_authenticated():
self.object.user = self.request.user
# Another computing etc
self.object.save()
return super(ActionCreateView, self).form_valid(form)
P.S.あなたは本当に変更get_initialが必要ですか?あなたのコードでは、私はこの必要性を見ません。
フォームが有効ではない可能性があります。 form_invalid()をオーバーライドして、それが呼び出されているかどうかを確認したり、post()をオーバーライドしたり、POST中のデータを確認したりできます。
'form_invalid'メソッドの中でprintステートメントを試しましたが、あなたは' POST'を使っていますか? –
'form_invalid'メソッドを作成すると、問題が明らかになりました。提案していただきありがとうございます。あなたが答えとしてあなたのコメントを書くなら、私はそれを受け入れて投票してうれしいです。ありがとうございました。 – neurix
私は同様の問題に遭遇し、 'form_invalid'も私を助けました。私はフォームが私がテンプレートに対応していないというエラーをレンダリングしていたので、それは表示されませんでした。 @neurixと遭遇したことに似ていますか? –