from django.apps import AppConfig from django.db.models.signals import post_migrate def create_photo_permissions(sender, **kwargs): """Create custom permissions for photos""" from django.contrib.auth.models import Permission from django.contrib.contenttypes.models import ContentType from media.models import Photo content_type = ContentType.objects.get_for_model(Photo) Permission.objects.get_or_create( codename="add_photo", name="Can add photo", content_type=content_type, ) Permission.objects.get_or_create( codename="change_photo", name="Can change photo", content_type=content_type, ) Permission.objects.get_or_create( codename="delete_photo", name="Can delete photo", content_type=content_type, ) class MediaConfig(AppConfig): default_auto_field = "django.db.models.BigAutoField" name = "media" def ready(self): post_migrate.connect(create_photo_permissions, sender=self)