Добавление группы и разрешения к группе с помощью миграции django

< <

Мне нужно создать группу "user" и "admin", затем добавить разрешение пользователю "Can view user" и администратору все эти разрешения и это нужно сделать с миграцией.

Мой уже код, который я предполагаю, совершенно глуп

# Generated by Django 4.0.3 on 2022-09-11 10:33

from django.db import migrations, transaction
from django.contrib.auth.models import Group, Permission


def add_group_permissions(a,b):
    group, created = Group.objects.get_or_create(name='user')
    try:
        with transaction.atomic():
            group.permissions.add(can_view_user)
            group.save()
    except InterruptedError:
        group.delete()


class Migration(migrations.Migration):
    dependencies = [
        ('app', '0001_initial'),
    ]

    operations = [
        migrations.RunPython(add_group_permissions),
    ]

Если кто-то может помочь, мне это нужно.

У меня есть несколько примеров пользовательских разрешений. В вашем models.py попробуйте сделать следующее ниже вашего класса:

class Meta:
        
        permissions = [
            ("access_app", "Can access the budget app"),  # access for all budget app
            (
                "level_2",
                "Can access the budget app - level 2",
            ),  # access to EyePlan model + hr
            (
                "level_3",
                "Can access the budget app - level 3",
            ),  # access to EyePlan model only
        ]

В вашем файле views.py:

class BudgetMixin(PermissionRequiredMixin):
    permission_required = "budget.access_app"

Попробуйте адаптировать этот код под свои требования, надеюсь, он вам поможет.

Ок, теперь у меня есть это в models.py:

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


class CustomUser(AbstractUser):
    username = models.EmailField(unique=True)
    name = models.CharField(max_length=64)
    last_name = models.CharField(max_length=64)
    phone_number = models.CharField(max_length=9, unique=True)
    USERNAME_FIELD = 'username'
    REQUIRED_FIELDS = []

    class Meta:
        permissions = [
            ("can_add_user", "Can add user"),
            ("can_change_user", "Can change user"),
            ("can_delete_user", "Can delete user"),
            ("can_view_user", "Can view user"),
        ]

Но как теперь создать группу "user" с правами can_view_user и "admin" с: can_add_user; can_change_user; can_delete_user; can_view_user.

Вернуться на верх