2014-09-28 38 views
0

我想要创建一个包含用户和组的UserGroup类。最后,我希望能够根据给定用户是在用户M2M中还是在组M2M中授予某个任务的权限。我知道组中有权限,但我希望能够将权限授予单个用户(可能),并且我需要一个一致的界面。类定义是(其实我已经定义为会员用户):用户/组权限类

class UserGroup(models.Model): 

    users = models.ManyToManyField(Member) 
    groups = models.ManyToManyField(Group) 

然后在我的views.py我想我会碰到这样的:

def is_in(member): 

    ## Check to see if they are in the User m2m 
    if members.objects.filter(pk=member.id).exists(): 
     return True 

    ## Check to see if they are in the Group m2m 
    if <something>: 
     return True 

    ## Otherwise return false. 
    return False 

我觉得这是有道理的。我不确定是否有效的方法来检查该成员是否在组M2M中的一个组中。

(如果有人想给我全班的建设性意见,我会很乐意接受这些意见)。

回答

1

Django的管理界面和基本用户模型已经允许这样做。用户可以添加到组中,并且可以为这两个组/用户授予权限。如果您有超出内置的额外需求,您可以开始覆盖用户或组模型方法。

In Django, how do I check if a user is in a certain group?

User groups and permissions

当查看在您的管理员用户对象,请参阅用户权限部分。这些设置是您可以通过用户设置的设置,它们将覆盖为其用户设置的组成员身份的权限。

+0

是的,你是对的。我没有看够它。我需要查看有关界面以更改权限视图,因为我想循环显示每个权限并显示人员/组。但是这不应该太难。 – brechmos 2014-09-29 14:31:24