如何将继承默认组和权限设置设置为CustomUser?

时间:2015-11-14 22:29:14

标签: django django-models

我创建了一个CustomUser来向现有的User类添加新字段。我只想默认为我的CustomUser的组和权限控件的用户设置,所以我可以使用默认的UserAdmin视图。

如何继承默认组和权限(我必须添加到CustomUser类中?)?

1 个答案:

答案 0 :(得分:1)

您可以使用post_signal信号配置默认用户权限。使用name对象的Permission属性来获取它们。

以下是一个例子:

@receiver(post_save, sender=CustomUser)
def define_default_user_permissions(sender, instance, **kwargs):
    # retrieve needed permissions
    # E.g : permission to add a token
    permission = Permission.objects.get(name='Can add token')
    # add this permission to the user
    instance.user_permissions.add(permission)

<app_name>.models的末尾添加此方法。详细了解signals

如果要显示所有权限,请使用python manage.py shell打开python shell并执行以下操作:

# import Permission object
from django.contrib.auth.models import Permission
# display all permissions
Permission.objects.all()

详细了解Models Meta - permissions,了解如何为模型创建权限

您可以使用Group对象为新用户定义默认组。