Как сохранить последние 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]
Примечание: код не проверен, я не уверен, является ли статус-код реальным атрибутом ответа. Кроме того, вы можете изменить свой список допустимых кодов состояния.