2017-03-17 10 views
0

フォームが無効なときにFormViewクラスを使用しているときにメッセージを表示するにはどうすればよいですか?私はform_valid関数でメッセージを表示することができますが、私はself.get_context_dataを使用しているので、form_invalidには考えません。FormViewのform_invalid内にdjangoメッセージを表示

これは、フォームが有効

def form_valid(self, form): 
    messages.success(self.request, '{0} added successfully'.format(name)) 
    return HttpResponseRedirect('/') 

どのように私はここにメッセージを使用することができたとき、私は、メッセージを表示するためにやっているのですか?

def form_invalid(self, form): 
    return self.render_to_response(self.get_context_data(form=form)) 
+0

はい、これを見ることができます[例](https://docs.djangoproject.com/en/dev/topics/class-based-views/generic-editing/#ajax-example) –

+0

フォームエラーの代わりに「あなたはすでに投稿済みです」というメッセージをテンプレートに表示したい – Serenity

答えて

0

多分これはこのようです。

def form_invalid(self, form): 
    name = 'john' 
    messages.warning(self.request, '{0} error'.format(name)) 

    return self.render_to_response(
     self.get_context_data(request=self.request, form=form)) 

説明:self.render_to_response(**kwargs)、なぜ前に置く

messages.warning(self.request, '{0} error'.format(name))?あなたのメッセージでself.requestを更新してください。

およびself.render_to_response(**kwargs)は、**kwargsパラメータを使用しています。 formおよびrequestフィールドのいずれか1つを に設定します。このdocsを参照してください。

+0

はいこれが有効です。 get_context_dataの内部でrequest = self.requestを使用する理由を教えてください。それはあなたがメッセージの中でself.requestをオーバーライドしているからです。警告? – Serenity

+0

私はあなたの答えを解決済みとマークしました。上記の私の質問を答えにも説明できますか? – Serenity

+0

更新を見る... –

関連する問題