我想创建一个包含用户和组的单个类UserGroup。最后,我希望能够根据给定用户是在用户M2M中还是在组M2M中来授予某些任务权限。我知道组中有权限,但我希望能够为单个用户(可能)提供权限,并且我想要一致的界面。类定义是(我实际上已将Member定义为User):
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中的一个群组中的有效方法。
(如果有人想给我整个班级的建设性意见,我也很乐意接受这些意见。)
答案 0 :(得分:1)
Django的管理界面和基本用户模型已经允许这样做。可以将用户添加到组,并且可以为这两个组/用户授予权限。如果您有超出内置的额外需求,您可以开始覆盖用户或组模型方法。
In Django, how do I check if a user is in a certain group?
在管理员中查看用户对象时,请参阅“用户权限”部分。这些是您可以为用户设置的设置,这些设置会覆盖按组成员身份为用户设置的权限。