2017-03-17 43 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

看到我的更新... –