如何在django中保存最新的url请求?

时间:2015-10-13 12:13:41

标签: django django-middleware

我想添加一个“最后一次见面”' url列表到项目,以便用户请求的最后5篇文章可以在列表中显示给所有用户。 我已经阅读了中间件docs,但在我的情况下无法弄清楚如何使用它。 我需要的是一个中间件的简单工作示例,它捕获请求以便保存和重用它们。

1 个答案:

答案 0 :(得分:1)

嗯,不知道我是用中间件做的,还是对装饰员做的。但正如你的问题是关于中间件,我的例子在这里:

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())

显示前五名将是这样的;

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

注意:代码未经过测试,我不确定status_code是否是响应的真实属性。此外,您可以更改有效状态代码列表。