gpt4 book ai didi

django - 出错时返回(重定向)到表单

转载 作者:行者123 更新时间:2023-12-04 18:16:27 24 4
gpt4 key购买 nike

我有两个 View /home 和/home/addItem

/home 包含一个用于创建新项目的表单,并将数据 POST 到/home/addItem,如果数据验证 addItem 将用户重定向回/home,如果数据不验证会出现问题:

我仍然希望用户返回/home 上的表单,但我希望表单包含输入的表单数据以及通知用户要修复的表单错误。

我能找到的大多数地方都建议:

def addItem(request):
form = NewItemForm(request.POST)
if(form.is_valid()):
#do stuff
return HttpResponseRedirect("/home")
return render_to_response("home-template.htm", {'form':form})

但是,此解决方案将在显示/home 内容时将用户留在/home/addItem 上,这在我的情况下效果不佳。

那么如何将用户连同表单内容和错误一起发送到/home?

最佳答案

如果您的表单数据不大,您可以将提交的数据存储在 session/cookie 中并将用户重定向到 /home .查看 /home可以检查 session /cookie 中是否存在任何表单数据,并向用户显示包含先前提交的数据和任何错误的表单。

示例代码(检查错误,存储/删除 cookie 的最佳方法):

def addItem(request):
form = NewItemForm(request.POST)
if form.is_valid():
#OK
return HttpResponseRedirect("/home")
else:
request.session['form_data'] = request.POST #this may not be exact way, please verify.
return HttpResponseRedirect("/home")

def home(request):
form_data = request.session.get('form_data', None)
form = NewItemForm(initial=form_data)
form.is_valid() # to get errors in form
#render form using template.

关于django - 出错时返回(重定向)到表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11566308/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com