Poniżej znajduje się mój kod w pliku signals.py umieszczonym w pakiecie, w którym zdefiniowano model auth.w django 1.8, jak ustawić nadawcę dla odbiornika sygnału post_migrate i post_syncdb, gdy ustawiony jest niestandardowy model użytkownika?
@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')
Dokumentacja (https://docs.djangoproject.com/en/1.8/topics/auth/customizing/#referencing-the-user-model) stwierdza, że powinna ona być ustawiona jako
sender=settings.AUTH_USER_MODEL
natomiast działa to tylko dla post_save jak wspomniano w przykładzie dokumentacji.
Ja już próbowałem get_user_model() a także bezpośrednio za pomocą my_custom_user.models.
get_user_model() zwróci błąd podczas ustawiania modeli jako nadawca działa tak samo dobrze, jak -
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')
Ale według dokumentacji nie jest to właściwy sposób odnieść niestandardowy model użytkownika i jest po prostu brzydkie obejście.
Czy ktoś mógłby mi pomóc w rozwiązaniu problemu, dzięki czemu mogę dodać te grupy przy pierwszej migracji modelu użytkownika.
Dziękuję
EDIT: przy użyciu get_user_model() zwraca następujący błąd -
django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.
Witam @ RA123, próbuję zarchiwizować ten sam problem, ale mój sygnał niestandardowy nie zostanie zwolniony. Wszelkie sugestie są mile widziane. Z góry dziękuję. – slackmart