0

我需要创建几种具有不同权限的用户。

我正在尝试使用代理这样做,但我不确定如何识别结果实例。我知道使用代理模型在数据库中的同一个表中,但我需要能够识别它们。例如,MyUser在管理员的列表中,我拥有从UserMyUser模型创建的所有实例,我只想拥有MyUser实例。

我想我应该覆盖管理员中的queryset方法MyUser,但我不确定识别MyUser实例的最佳方法是什么,或者即使它是拥有多个具有不同权限的用户模型的正确方法。

有人可以帮忙吗?

模型.py

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

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

管理员.py

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

1 回答 1

0

我创建了一个 group myusers,并在创建MyUser对象时将其添加到实例中,这样我就可以在查询集中将它们过滤掉MyAdminUser

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'))
于 2012-12-11T13:46:04.693 回答