更新FormView form_valid方法中的上下文数据?

更新FormView form_valid方法中的上下文数据?,第1张

更新FormView form_valid方法中的上下文数据?

我这样做

form_invalid
。这是我的方法:

from django.views.generic import FormViewclass ContextFormView(FormView):    def get(self, request, *args, **kwargs):        form_class = self.get_form_class()        form = self.get_form(form_class)        context = self.get_context_data(**kwargs)        context['form'] = form        return self.render_to_response(context)    def post(self, request, *args, **kwargs):        form_class = self.get_form_class()        form = self.get_form(form_class)        if form.is_valid(): return self.form_valid(form)        else: return self.form_invalid(form, **kwargs)    def form_invalid(self, form, **kwargs):        context = self.get_context_data(**kwargs)        context['form'] = form        return self.render_to_response(context)

你可以执行相同的 *** 作,但要使用

form_valid
。通常,
form_valid
的主体如下所示:

def form_valid(self, form):    return HttpResponseRedirect(self.get_success_url())

你将不得不覆盖

post
form_valid
,因为
post
调用
form_valid

def post(self, request, *args, **kwargs):    form_class = self.get_form_class()    form = self.get_form(form_class)    if form.is_valid():        return self.form_valid(form, **kwargs)    else:        return self.form_invalid(form, **kwargs)def form_valid(self, form, **kwargs):    # take some other action here    return HttpResponseRedirect(self.get_success_url())

只是为了澄清一下,存在此问题的原因是

ProcessFormView
该类的
get
方法已损坏。通常看起来像这样:

def get(self, request, *args, **kwargs):    form_class = self.get_form_class()    form = self.get_form(form_class)    return self.render_to_response(self.get_context_data(form=form))

它只是把垃圾扔掉

(._.)



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5004380.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-14
下一篇2022-11-14

发表评论

登录后才能评论

评论列表(0条)

    保存