Как автоматически установить разрешения для группы?
При создании модели 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()