Django 1.7, ¿dónde poner el código para agregar grupos mediante programación?

He estado tratando de encontrar la respuesta en los documentos de Django Auth, pero parece que no puedo encontrar lo que estoy buscando.

El problema que tengo es cuando defino el código para agregar Grupos (igual que Grupos en la página de administración):

#read_only
group, created = Group.objects.get_or_create(name='read_only')   
if created:
    group.permissions.add(can_read_campaign)
    logger.info('read_only_user Group created')
#standard
group, created = Group.objects.get_or_create(name='standard_user') 
if created:
    group.permissions.add(can_edit_users)
    logger.info('standard_user Group created')
#admin
group, created = Group.objects.get_or_create(name='admin_user') 
if created:
    group.permissions.add(can_edit_campaign, can_edit_users)
    logger.info('admin_user Group created')

Cuando ejecuté este código en models.py yen eso.py y ambos me dan este error:

django.core.exceptions.AppRegistryNotReady

Supongo que esto se debe al Modelo /en eso tratando de insertar cosas en la aplicación / administrador de django demasiado pronto?

¿Cómo puedo agregar estos grupos mediante programación?

EDITAR:

Esta no es una pregunta duplicada, en realidad fue agregar permisos y grupos dentro de los modelos durante la configuración del proyecto, en lugar de hacerlo a través del shell.

He resuelto estos problemas utilizando señales y receptores (módulos django).

Agregué el código para crear los permisos / grupos en su propia función y lo decoré con un receptor (post_migrate), que ejecutará esta función después de que se completen las migraciones, eliminando este error.

@receiver(post_migrate)
def init_groups(sender, **kwargs):
    #permission and group code goes here

Respuestas a la pregunta(1)

Su respuesta a la pregunta