如何在自定义用户模型中使用django guardian
我正在使用django guardian检查用户的对象权限。在我的特殊情况下,我扩展了用户模型。 在my models.py中,我扩展了如下用户模型: 在我的对象模型中,我为权限添加了一个元类: 在完成makemigrations和migrate之后,当我在python manage.py shell中运行below test时,它总是在我的用户模型中调用has_perm函数,并返回该函数的值,这是真的如何在自定义用户模型中使用django guardian,django,python-3.x,django-guardian,Django,Python 3.x,Django Guardian,我正在使用django guardian检查用户的对象权限。在我的特殊情况下,我扩展了用户模型。 在my models.py中,我扩展了如下用户模型: 在我的对象模型中,我为权限添加了一个元类: 在完成makemigrations和migrate之后,当我在python manage.py shell中运行below test时,它总是在我的用户模型中调用has_perm函数,并返回该函数的值,这是真的 >>>from myapp.models import User, t
>>>from myapp.models import User, task
>>>setuser = User.objects.get(email = 'joe@gmail.com')
>>>task = exclusionDomain.objects.get(name = 'task1')
>>>setuser.has_perm('view_task', task)
如何解决此问题?或者有没有关于如何在自定义用户模型中使用guardian的有用教程?如果有人有同样的问题。以下是解决方案: 使用AbstractUser而不是AbstractBaseUser。AbstractBaseUser与django guardian不兼容。根据《卫报》的文档,使用AbstractUser的扩展用户模型应该可以。这对我也很管用 以下是如何使用AbstractUser扩展用户模型的教程:
class task(models.Model):
name = models.CharField(max_length=100)
class Meta:
permissions = (
('view_task', 'View task'),
)
def __str__(self):
return self.name
>>>from myapp.models import User, task
>>>setuser = User.objects.get(email = 'joe@gmail.com')
>>>task = exclusionDomain.objects.get(name = 'task1')
>>>setuser.has_perm('view_task', task)