在django中如何访问请求之外的当前用户

aiqt4smr  于 12个月前  发布在  Go
关注(0)|答案(3)|浏览(106)

我在一个中等规模的django项目工作,我希望能够从我的查询管理器中访问当前用户。我需要能够设计一个自定义管理器来限制结果和查询集,使当前用户只得到与他/她有关的信息。
我收到了一些建议,我也看到了一个不太受支持的例子,从django中间件中使用threadlocals。然而,我很困惑,因为这似乎是最有希望的解决方案现在。我正在寻找一种更好的方法来做到这一点,所以我可以从模型管理器中访问当前用户。

1l5u6lss

1l5u6lss1#

可以将用户对象存储在会话对象中,并在需要时将其取出
参考how-to-lookup-django-session-for-a-particular-user

pkwftd7m

pkwftd7m2#

没有合理的方法可以让用户脱离请求。如果当前用户很重要,则将其传递给任何需要它的函数。

d4so4syb

d4so4syb3#

我发现了一种保存当前用户作为外键的方法,就是覆盖保存_model方法,如下所示:

def save_model(self, request, obj, form, change):
        """
        Given a model instance save it to the database.
        """
        obj.user = request.user
        obj.save()

相关问题