I have had a problem when using auth.groups in Django, while using the CustomerProxy in the admin interface:
I could not grant some key users to edit customers, because of missing permissions. They did not see it at all.
I added the command fix_permissions to my management console
# -*- coding: utf-8 -*-
import sys
from django.contrib.auth.management import _get_all_permissions
from django.contrib.auth.models import Permission
from django.contrib.contenttypes.models import ContentType
from django.core.management.base import BaseCommand
from django.apps import apps
class Command(BaseCommand):
help = "Fix permissions for proxy models."
def handle(self, *args, **options):
for model in apps.get_models():
opts = model._meta
sys.stdout.write('{}-{}\n'.format(opts.app_label, opts.object_name.lower()))
ctype, created = ContentType.objects.get_or_create(
app_label=opts.app_label,
model=opts.object_name.lower())
for codename, name in _get_all_permissions(opts):
sys.stdout.write(' --{}\n'.format(codename))
p, created = Permission.objects.get_or_create(
codename=codename,
content_type=ctype,
defaults={'name': name})
if created:
sys.stdout.write('Adding permission {}\n'.format(p))
After running it, I was able to grant the missing permissions.
I have had a problem when using auth.groups in Django, while using the
CustomerProxy
in the admin interface: I could not grant some key users to edit customers, because of missing permissions. They did not see it at all.I added the command
fix_permissions
to my management consoleAfter running it, I was able to grant the missing permissions.