我想访问模板中的根路径变量,我该怎么做? 到目前为止,我有:
{% if user.username == "" and request.path != "/login/" and request.path != "/" %}
<meta http-equiv="REFRESH" content="0;url=/login/">
{% else %}
我想写这样的东西:
{% if user.username == "" and request.path != projectRoot+"/login/" and request.path != projectRoot %}
<meta http-equiv="REFRESH" content="0;url=projectRoot+/login/">
{% else %}
我应该从我的视图中创建并发送此projectRoot变量,还是已经有变量?
非常感谢,
罗曼
答案 0 :(得分:1)
您可以使用request.full_path
获取URl的完整路径并编写模板标记以检查它是否包含字符串,但这是尝试做您想要的非常糟糕的方法(未经授权时重定向)。
相反,您should decorate your view using @login_required
:
from django.contrib.auth.decorators import login_required
@login_required
def my_view(request):
...
答案 1 :(得分:0)
虽然我同意Timmy的意见,你不应该尝试在模板中进行这种重定向,但请注意,有一种简单的方法可以获取视图的完整URL:那就是使用{{1} } 标签。该标记(以及视图中的{% url %}
函数)知道您从WSGI环境获取的站点的完整路径,因此无需传递额外的变量。因为你不应该对URL路径进行硬编码,所以使用它是一个全面的胜利。