Django:如何根据访客来自哪里显示不同的HTML元素?

时间:2013-01-30 04:19:42

标签: python django

我是Django的新手。在我的模板上,如果访问者来自某个页面,我想显示一条消息。例如,如果用户来自www.abcdef.com,则页面将显示消息:

您好!

如果用户来自任何其他网址,则不会显示该消息。我一直在忙着{{request.META.HTTP_REFERER}},但我还是迷路了。提前致谢!

2 个答案:

答案 0 :(得分:0)

如果您使用链接在页面之间导航,则可以在链接中对其进行硬编码,以便:

 <a href='/main/welcome?from={{path|urlencode}}'>

在您重定向到的页面中,使用

 page=request.GET.get('from', None)

获取用户来自的位置,并从那里设置逻辑。

答案 1 :(得分:0)

在您的视图中确定HTTP Referrer并将其与您的上下文一起传递,您不必通过您可以在布尔上下文变量中传递的引用者,或两者 - 我建议 - 这将允许您执行保持一个更清洁的模板,并允许您更恰当地定制消息。

获取推荐人:

https://stackoverflow.com/questions/4406377/django-request-to-find-previous-referrer

通过上下文变量发送变量后,请尝试在模板中检查它们。我添加了refer_approved_source,您可以根据列表进行检查,并在视图中设置它不必具有仅用于说明目的的名称。

{% if refer_approved_source == 'source' %}
  It looks like you are from {{refer}}
{% endif %