在URL末尾附加信息

时间:2014-01-23 01:49:13

标签: django templates django-urls

我有一个与论坛非常相似的应用程序。用户可以参与发布内容。当用户单击某个主题时,它会转到该主题页面,该页面显示与该主题相关的所有讨论。我有一个侧边栏,就像在stackoverflow中显示similar questions一样,它显示了与当前页面中主题标题相关的主题。

以下是侧边栏模板代码:

<div class="box">
    <h2>{% trans %}Related Topics{% endtrans %}</h2>
    <div class="topic-related">
        {% for thread_dict in similar_threads.data() %}
        <p>
            <a href="{{ thread_dict.url }}">{{ thread_dict.title|escape }}</a>
        </p>
        {% endfor %}
    </div>
</div>

我有一个跟踪用户点击的应用程序。假设用户访问了某个主题,在看到相关主题后,她点击了主题并转到该页面。但我无法区分用户是否直接使用此主题而不是使用相关主题部分。

所以我想我可以在网址的末尾添加fromRelatedTOpics之类的东西。实现这一目标的最佳方法是什么?

<a href="{{ thread_dict.url(fromRelatedTopics) }}">{{ thread_dict.title|escape }}</a>

这可能吗?

2 个答案:

答案 0 :(得分:0)

您要查找的关键字是 referer 。如果用户单击了指向您站点的链接,则引用者可能会告诉您他来自哪里(这取决于浏览器设置)。要从视图访问引用者,您必须访问请求的META属性,即:

request.META.get('HTTP_REFERER')

您可能希望了解this django snippet以获得灵感。

如果您想在模板中使用此信息,可以尝试:

{{ request.META.HTTP_REFERER }}

答案 1 :(得分:0)

您可以做的是将所有点击重定向到“相关主题”到单个视图,同时将相关主题ID(或任何可以在后端标识该主题的唯一值)传递给此视图。

现在无论何时执行此视图,您都可以安全地假设有人点击了“相关主题”,因此请记录此行为。使用 referer (如@steinar所述),您还可以记录从中点击相对链接的父页面URL。

记录行为后,您可以使用传递给此视图的唯一ID将用户重定向到“相关主题”。

相关问题