2017-03-17 45 views
0

如何在Form無效時使用FormView類顯示消息?我可以在form_valid函數中顯示消息,但對form_invalid沒有任何想法,因爲我使用self.get_context_data。在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)) 

說明:

messages.warning(self.request, '{0} error'.format(name))self.render_to_response(**kwargs)前放,爲什麼呢?這用於更新您的消息self.request

self.render_to_response(**kwargs)正在使用**kwargs參數。 其中之一爲formrequest字段。看到這個docs

+0

是的,這工作。你能否清楚爲什麼在get_context_data中使用request = self.request工作?是否因爲你在messages.warning中覆蓋了self.request? – Serenity

+0

我已經解決了你的答案。請你也可以在回答中解釋我的上述問題嗎? – Serenity

+0

看到我的更新... –