我有一个django应用程序,它包含一个来自homepage
的链接,链接到View1
,重定向到View2
,应该重定向回View1
。但是,View2
中的HTTP_REFERER
头将homepage
视为referer,而不是View1
。你知道吗
主页模板
...
<!-- This links to the LoginView -->
<a href="{% url 'login' %}">Login</a>
...
登录视图
class LoginView(views.View):
def dispatch(self, request, *args, **kwargs):
if not request.session.test_cookie_worked():
request.session.set_test_cookie()
# This redirects to the create_captcha view
return redirect(reverse('create_captcha'))
return super().dispatch(request, *args, **kwargs)
创建验证码视图
def create_captcha(request):
if not request.session.test_cookie_worked():
return render("Please enable cookies and try again.")
# This SHOULD redirect to LoginView but instead redirects to the homepage.
return redirect(to=request.META.get('HTTP_REFERER'))
预期行为:homepage link
->;LoginView
->;create_captcha
->;LoginView
实际行为:homepage link
->;LoginView
->;create_captcha
->;homepage
问题:如何使HTTP_REFERER
指向LoginView
而不是主页?你知道吗
HTTP标准中没有规定重定向后
HTTP_REFERER
应该发生什么,因此您的代码将依赖于浏览器。而且,HTTP_REFERER
并不总是受到尊重/支持。你知道吗从您的代码看来,您可以直接重定向到URL:
但我想你还想处理其他的案子。你知道吗
最好在URL中添加一个查询字符串,例如:
或者对现代Python更好一点:
在captcha视图中:
相关问题 更多 >
编程相关推荐