自定义用户模型创建额外的组和权限表

克里姆森

我正在使用 Django 2.2

我通过继承自AbstractUser. 与此同时,我还创建了一个UserManager.

# ./settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django_extensions',
    'rest_framework',
    'core.apps.AuthConfig'
]
AUTH_USER_MODEL = 'core.User'

# ./core/models.py

class User(AbstractUser):
    email = models.EmailField(_('email address'), unique=True)

    REQUIRED_FIELDS = ['first_name', 'last_name']
    USERNAME_FIELD = 'email'

    objects = UserManager()

# ./core/managers.py
class UserManager(BaseUserManager):
    def create_user(self, email, password=None, **kwargs):
        if not email:
            raise ValueError('Email field is required')
        email = self.normalize_email(email)
        user = self.model(email=email, **kwargs)
        user.set_password(password)
        user.save()
        return user

    def create_superuser(self, email, password, **extra_fields):
        extra_fields.setdefault('is_staff', True)
        extra_fields.setdefault('is_superuser', True)
        extra_fields.setdefault('is_active', True)
        return self.create_user(email, password, **extra_fields)

当我运行时:

  • ./manage.py makemigrations
  • ./manage.py migrate

我在我的数据库相关组和权限中创建了额外的表。

在此处输入图片说明

这样做的目的是什么?难道我做错了什么?

我尝试在 Django admin 中创建一个组并为其分配一些权限。仅使用auth_groupauth_group_permissions表。

厄兹古尔・阿卡利

这些模型来自PermissionsMixin 中定义的 ManyToMany 字段,该字段AbstractUser继承,后者由您的自定义User模型继承

groups = models.ManyToManyField(
    Group,
    verbose_name=_('groups'),
    blank=True,
    help_text=_(
        'The groups this user belongs to. A user will get all permissions '
        'granted to each of their groups.'
    ),
    related_name="user_set",
    related_query_name="user",
)
user_permissions = models.ManyToManyField(
    Permission,
    verbose_name=_('user permissions'),
    blank=True,
    help_text=_('Specific permissions for this user.'),
    related_name="user_set",
    related_query_name="user",
)

从这里可以看出,保持用户和组之间的关系,而user_permissions保持用户的特定权限,与用户直接相关(而不是通过组)。

如果您不想要这些,您可以基于AbstractBaseUser定义您的用户模型

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django:将权限和组功能集成到自定义用户模型中

来自分类Dev

使用自定义用户模型时缺少组和权限分配

来自分类Dev

django 1.9不为自定义用户模型创建表

来自分类Dev

带有额外参数的自定义用户模型的表单和视图 [django 2.1]

来自分类Dev

Django:基于组的模型的自定义权限

来自分类Dev

自定义和非托管用户模型/ Lagacy用户表

来自分类Dev

创建我的自定义安全角色和自定义用户组表,以实现对asp.net mvc Web应用程序的自定义授权

来自分类Dev

Django:使用自定义用户模型创建超级用户

来自分类Dev

无法在Django中创建自定义用户模型

来自分类Dev

在Django中创建自定义用户模型的指南

来自分类Dev

Django rest 自定义用户模型创建失败

来自分类Dev

用户模型laravel中的自定义表

来自分类Dev

如何在活动中自定义用户和组

来自分类Dev

Linux中的自定义用户和自定义权限

来自分类Dev

通过用户组向MediaWiki用户添加自定义权限

来自分类Dev

在使用自定义用户模型和UserManager的python-social-auth创建django用户时出现问题

来自分类Dev

使用自定义身份用户(ASP.NET 5.2EF 6和身份2)时,用户角色表上的额外列

来自分类Dev

使用自定义用户、文件和包创建自定义 Ubuntu 发行版

来自分类Dev

Django 创建自定义表单权限

来自分类Dev

Asp.net Identity 2自定义用户和自定义表名称

来自分类Dev

使用ASPNetUsers表和自定义创建关系

来自分类Dev

将模型上的对象限制为自定义用户组

来自分类Dev

自定义用户模型的问题

来自分类Dev

Django(1.6)自定义用户模型

来自分类Dev

自定义用户模型中的EmbeddedModelField

来自分类Dev

Django自定义用户模型

来自分类Dev

自定义 Django 用户模型

来自分类Dev

使用自定义用户模型创建超级用户后,无法登录django admin

来自分类Dev

无法在Django 1.8中创建超级用户使用自定义用户模型

Related 相关文章

  1. 1

    Django:将权限和组功能集成到自定义用户模型中

  2. 2

    使用自定义用户模型时缺少组和权限分配

  3. 3

    django 1.9不为自定义用户模型创建表

  4. 4

    带有额外参数的自定义用户模型的表单和视图 [django 2.1]

  5. 5

    Django:基于组的模型的自定义权限

  6. 6

    自定义和非托管用户模型/ Lagacy用户表

  7. 7

    创建我的自定义安全角色和自定义用户组表,以实现对asp.net mvc Web应用程序的自定义授权

  8. 8

    Django:使用自定义用户模型创建超级用户

  9. 9

    无法在Django中创建自定义用户模型

  10. 10

    在Django中创建自定义用户模型的指南

  11. 11

    Django rest 自定义用户模型创建失败

  12. 12

    用户模型laravel中的自定义表

  13. 13

    如何在活动中自定义用户和组

  14. 14

    Linux中的自定义用户和自定义权限

  15. 15

    通过用户组向MediaWiki用户添加自定义权限

  16. 16

    在使用自定义用户模型和UserManager的python-social-auth创建django用户时出现问题

  17. 17

    使用自定义身份用户(ASP.NET 5.2EF 6和身份2)时,用户角色表上的额外列

  18. 18

    使用自定义用户、文件和包创建自定义 Ubuntu 发行版

  19. 19

    Django 创建自定义表单权限

  20. 20

    Asp.net Identity 2自定义用户和自定义表名称

  21. 21

    使用ASPNetUsers表和自定义创建关系

  22. 22

    将模型上的对象限制为自定义用户组

  23. 23

    自定义用户模型的问题

  24. 24

    Django(1.6)自定义用户模型

  25. 25

    自定义用户模型中的EmbeddedModelField

  26. 26

    Django自定义用户模型

  27. 27

    自定义 Django 用户模型

  28. 28

    使用自定义用户模型创建超级用户后,无法登录django admin

  29. 29

    无法在Django 1.8中创建超级用户使用自定义用户模型

热门标签

归档