2012-12-11 62 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'))