2012-12-11 60 views
0

我需要創建具有不同權限的多種類型的用戶。如何識別代理模型實例?

我試圖這樣做使用代理,但我不知道如何識別結果實例。我知道使用代理模型在數據庫中的同一個表中,但我需要能夠識別它們。例如,在管理員的MyUser列表中,我有從UserMyUser模型創建的所有實例,並且我只想要MyUser實例。

我想我應該重寫queryset方法MyUser管理員,但我不知道什麼是識別MyUser情況下,或者即使是有不同權限的多個用戶模型的正確方法的最佳途徑。

有人可以幫忙嗎?

models.py

from django.db import models 
from django.contrib.auth.models import User 

class MyUser(User): 
    class Meta: 
     proxy = True 

admin.py

class MyUserAdmin(admin.ModelAdmin): 
    pass 
admin.site.register(MyUser, MyUserAdmin) 
+0

爲什麼不使用組來分配權限? – Brandon

+0

我想讓他們在我的管理員中分開,這是我可以看到的最簡單的方式。 – jul

回答

0

自己創建的羣組myusers,它創建一個MyUser對象時添加到該實例,讓我可以將其過濾出來MyAdminUser queryset:

class MyUser(User): 
    class Meta: 
     proxy = True 

    def save(self, *args, **kwargs): 
     super(MyUser, self).save(*args, **kwargs) 
     self.groups.add(Group.objects.get(name='myusers'))