Voici mon code dans le fichier signals.py placé dans le paquet où le modèle d'authentification est défini.dans django 1.8, comment définir l'expéditeur pour le récepteur de signal post_migrate et post_syncdb lorsqu'un modèle utilisateur personnalisé est défini?
@receiver(post_migrate, sender=settings.AUTH_USER_MODEL)
def define_groups(sender, **kwargs):
# Create groups
Group.objects.get_or_create(name='Promoter')
Group.objects.get_or_create(name='Client')
Group.objects.get_or_create(name='Superuser')
Group.objects.get_or_create(name='Staff')
La documentation (https://docs.djangoproject.com/en/1.8/topics/auth/customizing/#referencing-the-user-model) indique qu'il devrait être défini comme
sender=settings.AUTH_USER_MODEL
alors que cela ne fonctionne que pour post_save comme mentionné dans l'exemple de la documentation.
Je l'ai déjà essayé get_user_model() et aussi directement en utilisant les my_custom_user.models.
get_user_model() renvoie une erreur, tout en établissant des modèles comme émetteur fonctionne très bien, comme -
from . import models
@receiver(post_syncdb, sender=models)
def define_groups(sender, **kwargs):
# Create groups
Group.objects.get_or_create(name='Promoter')
Group.objects.get_or_create(name='Client')
Group.objects.get_or_create(name='Superuser')
Group.objects.get_or_create(name='Staff')
Mais d'après la documentation ce n'est pas la bonne façon de consulter un modèle d'utilisateur personnalisé et est juste une solution de contournement laide.
Est-ce que quelqu'un pourrait m'aider avec une solution pour que je puisse ajouter ces groupes avec la première migration du modèle d'utilisateur.
Merci Vous
EDIT: en utilisant get_user_model() renvoie l'erreur suivante -
django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.
Salut @ RA123, j'essaie d'archiver le même problème, mais mon signal personnalisé ne se déclenche pas. Toute suggestion est la bienvenue. Merci d'avance. – slackmart