我需要创建几种具有不同权限的用户。
我正在尝试使用代理,但我不确定如何识别生成的实例。我知道使用代理模型在数据库的同一个表中,但我需要能够识别它们。例如,在管理员的MyUser
列表中,我拥有从User
和MyUser
模型创建的所有实例,并且我希望只有MyUser
个实例。
我想我应该覆盖queryset
admin中的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 :(得分: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'))