1

Я пишу форум на базе django, и я решил, что он будет удобен для просмотра его последних страниц. Кроме того, промежуточное программное обеспечение для отслеживания пользователей может быть хорошей поддержкой для предложений и т. Д.Django последний раз посещал список URL-адресов

  1. Я думаю, самый простой способ сделать это состоит в использовании Django Middleware, но я столкнулся с проблемой: как получить заголовок страницы, оказываемые? Переопределить process_template_response? Могу ли я получить {% block title %}?

  2. Второй серверный способ - использовать тег шаблона, я думаю. В самом простом случае он должен выглядеть как {% block title %}{% last_visited _("Page title") %}{% endblock %}.

  3. Третий, глупый способ: создать сценарий ajax, который будет вызывать текущую открытую страницу пользователя с заголовком в его сеанс. Таким образом, этот метод просто позволит нам получить заголовок страницы.

Я думаю, правильный путь, чтобы получить title блок из контекста шаблона в ППО. Как мне это сделать?

Спасибо.

ОБНОВЛЕНИЕ

Сделано gist с реализацией второго метода с использованием templates и django.cache. Самое простое использование:

{% 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

D o вы просто хотите отслеживать последнюю тему форума, которую они открыли? В этом случае это всего лишь одно представление, которое вы заинтересованы в отслеживании - странице подробностей форума? Используя это, вы можете легко добавить страницу в сеанс пользователей. –

+0

Я хочу сделать многоразовое приложение, которое предоставляет пользователю возможность просматривать историю своего сайта, чтобы он мог быстро вернуться. Если он будет похож на ajax, пользователь может вернуться с другого сеанса (если приложение использует кеш с ключом user.id), с другой вкладки и т. Д. Это не просто «повторить эту тему». –

ответ

0

В вашем случае я бы использовать второй подход немного измененную:

{% last_visited current_page_title current_page_url num %} 

, которые могли бы сделать две вещи:

  1. магазин текущее название и URL-адрес в переменной сеанса (список последнего посещения страницы)
  2. Удалить последние посещенные страницы из одной и той же переменной сеанса
+0

2. Я хочу, чтобы где-то вывести ajax-select. Также в вашем подходе мне нужно использовать переменную шаблона для хранения заголовка. Думаю, лучше сделать еще один шаблонный шаблон для отображения страниц last_visited. Но, во всяком случае, мне не нравится этот метод: он не подключается, он не ленив. –