gpt4 book ai didi

python - 如何在 Django 中使用变量重定向?

转载 作者:行者123 更新时间:2023-11-28 21:53:02 26 4
gpt4 key购买 nike

如何在 Django 中使用变量重定向?请指导我,谢谢。

urls.py:

urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
url(r'^computer/$', views.computer, name='computer'),
url(r'^result/$', views.result, name='result'),
)

这是我原来的 views.py :

def computer(request):
result = Computer.objects.order_by('?')[:1]
return render(request, 'many/result.html',{'result':result})

我发现我有问题,渲染不会重定向到 url 上的 moneymany/result.html
所以如果用户刷新,它会在同一页面上得到另一个结果。

所以我必须使用重定向到 many/result.html
在 django 中重定向的通常方法是什么,我必须传递变量 result?我试试这个,但没有用:

def result(request):
return render(request, 'many/result.html')

def computer(request):
result = Computer.objects.order_by('?')[:1]
url = reverse(('many:result'), kwargs={ 'result': result })
return HttpResponseRedirect(url)

最佳答案

你需要

url(r'^result/(?P<result>[^\/]*)/$', views.result, name='result'),

return redirect(reverse('many:result', kwargs={ 'result': result }))

或者(不改变 url)

return redirect('/result/?p=%s' % result )

如果你想在重定向的同时维护POST数据,那说明你的设计不好。引用 Lukasz:

If you faced such problem there's slight chance that you had over-complicated your design. This is a restriction of HTTP that POST data cannot go with redirects.

关于python - 如何在 Django 中使用变量重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27330543/

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