我是django的新手,这给了我一个问题。我试图获得一个简单的GET变量。 的 mysite的/搜索/ Q =&安培;开始= 10安培;端= 20&安培;语言= Python的 它有效..
我的观点是:
def search(request, invalid_subscribe_to_alert_form=None):
...
start = int(request.GET.get('start', 1))
end = int(request.GET.get('end', 10))
然后我请求这个
mysite的/搜索/ Q =&安培;开始= AWORD&安培;端= 20&安培;语言= Python的
如何在捕获值错误后重定向到同一页面?这样请求将返回到404页面。
答案 0 :(得分:0)
使用Django session framework。在之前的正确视图中,您必须存储最后访问的正确页面的值:
def search(request, invalid_subscribe_to_alert_form=None):
# ...
request.session['last-correct-path'] = request.path
然后在失败的视图中:
def search(request, invalid_subscribe_to_alert_form=None):
# ...
except ValueError:
return HttpResponseRedirect(request.session['last-correct-path'])
无论如何,如果我是你,我最好返回404或显示一些错误信息,而不是仅仅重定向到最后一页。
答案 1 :(得分:0)
魔术比可预测性差。 This SO有多个答案,指向40X是用户在URL中粘贴参数时返回的正确状态代码。
另外:Django有pagination支持(搜索插件和REST框架也经常为你做这件事,例如DRF。)