2014-09-28 83 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