栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

它只是把垃圾扔掉了

(._.)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/398632.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号