在FormView的form_invalid中显示django消息

时间:2017-03-17 03:22:32

标签: python django django-1.9

当表单无效时,如何在使用FormView类时显示消息?我可以在form_valid函数中显示消息但不知道form_invalid,因为我正在使用self.get_context_data。

这是我在表单有效时显示消息的方法

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))

1 个答案:

答案 0 :(得分: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