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

How to save the latest url requests in django?

我想在项目中添加一个'Last seen' url列表,这样用户请求的最后5篇文章可以在列表中显示给所有用户。 我已经阅读了中间件 docs 但不知道如何在我的案例中使用它。 我需要的是一个中间件的简单工作示例,它捕获请求以便可以保存和重用它们。

嗯,不知道我是用中间件来做,还是用装饰器来做。但是由于你的问题是关于中间件的,这里是我的例子:

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]

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