我正在编写基于django的论坛,我认为它适合用户浏览他的最后几页。此外,用户跟踪中间件可以很好地帮助建议,等等。
我认为,最简单的方法是使用Django Middleware
,但我遇到了一个问题:如何获取正在呈现的页面标题?覆盖process_template_response
?我可以在那里找到{% block title %}
吗?
我认为第二种服务器端方式是使用模板标签。在最简单的情况下,它应该看起来像{% block title %}{% last_visited _("Page title") %}{% endblock %}
。
第三种,愚蠢的方式:制作一个ajax脚本,将当前用户打开的页面带有标题进入他的会话。所以,这种方法只会避免我们获得页面标题。
我认为,正确的方法是从中间件中的模板上下文中获取title
块。我该怎么办?
感谢。
使用templates
和django.cache
使gist实现了第二种方法。最简单的用法:
{% block title %}{% save_visited _("Profile setup") %}{% endblock %}
...
{% load_visited 'visited' %}
{% for title, uri, dt in visited %}
<a href="{{ uri }}">{{ title }} {% trans "at" %} {{ dt }}</a><br/>
{% endfor %}
另外,我还在寻找一种允许在中间件中获取页面{% block title %}
的方法。当然,我可以使用lxml
解析器并在title
方法中获取process_response
,但这是一个丑陋的矫枉过正。
感谢您的任何建议。
答案 0 :(得分:0)
在你的情况下,我会使用稍微修改的第二种方法:
{% last_visited current_page_title current_page_url num %}
会做两件事: