1

我是新手,django/python并且正在通过我的webapp. 我需要帮助来解决我的一个问题。

在我的应用程序中,我计划将每个用户(来自auth_user)分配给组之一(来自auth_group)。每个组可以有多个用户。我已经进入auth_group,auth_userauth_user_groups。这是我的问题:

  1. 在登录时,我想检查登录用户属于哪个组?

  2. 我想将该组信息保留在会话/缓存中,以便所有页面都只能显示有关该组的信息。

如果你有任何示例代码会很棒。

4

2 回答 2

0

1)作为user的实例auth.models.User,可以通过 获取用户所属的所有组user.groups。如果您想在登录时询问,那么您应该在登录视图中执行此操作。

2)您可以使用会话或缓存的方法来处理,这无关紧要,但是一旦有了组,您就需要渲染具有该值的页面,我的意思是,您需要将组提供给模板渲染,才能做到这一点我建议您使用自定义上下文处理器

于 2013-01-07T18:56:34.830 回答
0

通过 context_processor 代码示例支持@trinchet 的非常好的答案。

放入webapp一个名为的新文件context_processors.py并在其上写入以下行:

def user_groups(request):
"""
Add `groups` var to the context with all the
groups the logged in user has, so you can access 
in your templates to this var as: {{ groups }}
"""
groups = None
if request.user.is_authenticated():
    groups = user.groups
return {'groups': groups}

最后settings.py添加'webbapp.context_processors.user_groups'TEMPLATE_CONTEXT_PROCESSOR

 TEMPLATE_CONTEXT_PROCESSORS = (
    'webbapp.context_processors.user_groups', 
)
于 2013-01-08T04:39:30.047 回答