Создать поле с конкретными разрешениями в Django - PullRequest
1 голос
/ 07 октября 2019

Я хочу добавить поле в своем модуле, чтобы дать пользователю некоторые
разрешения, такие как is_superuser field. Но как я могу сделать это с настройкой разрешения?

    class CustomUser(AbstractUser):
        username = models.CharField(max_length=100,unique=True)
        email = models.EmailField(_('email address'), unique=True)
        image = models.ImageField(default='default.jpg', upload_to='profile_pics ')
        date_joined = models.DateTimeField(_('date joined'),default=timezone.now)
        is_active = models.BooleanField(default=True)
        is_admin = models.BooleanField(default=False)
        is_staff = models.BooleanField(default=False)

        USERNAME_FIELD = 'username'
        REQUIRED_FIELDS = ['email']

        objects = CustomUserManager()

1 Ответ

1 голос
/ 07 октября 2019

Вы можете использовать группы:

from django.contrib.auth.models import Group
...
new_group, _ = Group.objects.get_or_create(name='new_group')
...
user.groups.add(new_group)
...
if user.groups.filter(name=new_group).exists():
    # good to go
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...