Как сохранить последние URL-запросы в Django?

Я хотел бы добавить в проект список URL-адресов "Последние просмотренные", чтобы последние 5 статей, запрошенных пользователями, могли отображаться в списке для всех пользователей. Я прочитал документы по промежуточному программному обеспечению, но не смог понять, как использовать его в моем случае. Что мне нужно, так это простой рабочий пример промежуточного программного обеспечения, которое фиксирует запросы, чтобы их можно было сохранять и использовать повторно.

1 ответ

Решение

Хм, не знаю, буду ли я делать это с промежуточным программным обеспечением или прямо с декоратором. Но так как ваш вопрос о Middleware, вот мой пример:

class ViewLoggerMiddleware(object):
    def process_response(self, request, response):
        # We only want to save successful responses
        if response.status_code not in [200, 302]:
            return response

        ViewLogger.objects.create(user_id=request.user.id, 
            view_url=request.get_full_path(), timestamp=timezone.now())

Показ топ 5 будет что-то вроде;

ViewLogger.objects.filter(user_id=request.user.id).order_by("-timestamp")[:5]

Примечание: код не проверен, я не уверен, является ли статус-код реальным атрибутом ответа. Кроме того, вы можете изменить свой список допустимых кодов состояния.

Другие вопросы по тегам