Как автоматически установить разрешения для группы?

При создании модели Django автоматически создает разрешения для CRUD-операций. При условии, что группы пользователей были созданы ранее, возникает вопрос: как автоматически добавить необходимые разрешения для группы?

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

Для этой цели можно создать Signal, в котором можно назначить разрешения группе.

@receiver(models.signals.post_save, sender=User)
def assign_permission_signal_handler(sender, instance, created, **kwargs):
    if created:
       group = Group.objects.get(name='Group name')
       instance.groups.add(group)
       group.permissions.set('permission')
       instance.save()
Вернуться на верх