Aco*_*orn 5 forms django redirect-after-post
我有一个简单的表单,当提交重定向到成功页面时.
我希望能够在我的成功页面中使用上一步中提交的数据.
据我所知,重定向时无法传递POST数据,那么如何实现呢?
目前我不得不直接从同一个URL返回成功页面,但这会在刷新时导致可怕的数据重新提交.
是用request.session
唯一的方法去?
我一直这样做,不需要会话对象.这是一种非常常见的POST-redirect-GET模式.通常我所做的是:
这样,您可以在保存后保存POST并重定向.
一个示例视图,假设一个模型的东西:
def all_thingies(request, **kwargs):
if request.POST:
form = ThingieForm(request.POST)
if form.is_valid():
thingie = form.save()
return HttpResponseRedirect(thingie.get_absolute_url())
else:
form = ThingieForm()
return object_list(request,
queryset = Thingie.objects.all().order_by('-id'),
template_name = 'app/thingie-list.html',
extra_context = { 'form': form },
paginate_by = 10)
Run Code Online (Sandbox Code Playgroud)
您可以:
更新:
关于pt.上面的1,我的意思是你可以做(在POST处理程序中):
my_object = MyModel.objects.create(...)
request.session['my_object_id'] = my_object.id
Run Code Online (Sandbox Code Playgroud)
或者你可以尝试传递整个对象(它应该工作,但我不是100%确定):
my_object = MyModel.objects.create(...)
request.session['my_object'] = my_object
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4709 次 |
最近记录: |