【问题标题】:Django - check if user has been redirected to current pageDjango - 检查用户是否已被重定向到当前页面
【发布时间】:2014-03-17 06:52:47
【问题描述】:

我正在使用 Django 1.5,我想检查用户是否已被重定向到我的登录页面,因为他试图访问另一个需要登录但未登录的页面。假设有这个名为“securityPage”的视图并假设当我访问该视图时会调用该视图

/securityInfo/

网址。假设这是 securityPage 视图:

@login_required
def securityPage(request):
    #some code

现在,当我访问该 URL 时,它会将我重定向到 login.html 页面,这是正确的(因为用户 - 我 - 没有登录任何帐户)。这是我的 login.html:

{% if 'next' in request.GET %}
    <p>You must first login into your account before having access to the page you were trying to view.</p>
{% endif %}

由于某种原因,即使我被重定向并且我被重定向到的登录页面的 URL 是

http://127.0.0.1:8000/login/?next=/securityInfo/

,线

{% if 'next' in request.GET %}

即使“下一个”在 URL 中,也会评估为 false。知道为什么吗?

【问题讨论】:

  • Next 不在当前请求中(重定向),它将在下一个请求中(因此变量名称为“next”),当用户登录时,因为“next”将在发送登录表单时发送。
  • @Jingo hm,但我认为它只是检查字符串“下一个”是否在 URL 中。我如何制作它以检查用户是否已被重定向到当前页面?

标签: django validation redirect get request


【解决方案1】:

我不认为请求对象是默认上下文值的一部分。

在您的设置中检查您的 template_context_processors,如果您在该列表中添加 django.core.context_processors.request,那么当前请求将被添加到每个请求上下文中。或者只是手动传递该视图的请求。

https://docs.djangoproject.com/en/1.5/ref/templates/api/#django-core-context-processors-request

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-31
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    相关资源
    最近更新 更多