【问题标题】:Append information at the end of the URL在 URL 末尾附加信息
【发布时间】:2014-01-23 01:49:13
【问题描述】:

我有一个与论坛非常相似的应用程序。用户可以参与发布内容。当用户单击一个主题时,它会转到该主题页面,该页面显示与该主题相关的所有讨论。我有一个侧边栏,就像在 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>

这可能吗?

【问题讨论】:

    标签: django templates django-urls


    【解决方案1】:

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

    request.META.get('HTTP_REFERER')
    

    您可能想查看this django snippet 以获得一些灵感。

    如果你想在模板中获得这些信息,你可以试试这个:

    {{ request.META.HTTP_REFERER }}
    

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-16
        • 2012-06-20
        • 2011-08-02
        • 1970-01-01
        • 1970-01-01
        • 2023-03-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多