繁体   English   中英

Django内联登录处理:获取当前活动的反向URL名称

[英]Django inline login processing: getting current active reverse url name

我目前正在使用模式登录框,该框将提交并处理登录请求,而无需重新加载页面。 成功登录后,有两种可能的结果:

  1. 用户希望事先访问仅登录用户才能访问的链接:登录后,该用户将重定向到该页面

  2. 用户单击触发AJAX调用的元素,该元素仅对已登录用户可用:登录后再次触发ajax调用

模板

{% load url from future %}
<form action="{% url 'login' %}" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Login" />
</form>

现在,我不确定如何执行此操作。 我的主要问题是确定登录后需要处理哪个URL。 成功登录后,我如何知道队列中正在处理哪个URL?

当您重定向到登录页面时,通常会将下一个参数与请求一起传递。 对于ajax请求也是如此。 您只需要向表单中添加一个隐藏的输入字段,即可将“ next”参数与未经登录的用户尝试获取的网址一起传递给网址:

{% load url from future %}
<form action="{% url 'login' %}" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Login" />
<input style="hidden" name="next" value="some_url">
</form>

然后,标准的登录视图将返回HttpResponseRedirect,对于像ajax的登录,这不是您想要的。 因此,您将必须自己编写登录视图并覆盖该行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM