Ich versuche, ein Signal zu machen, dass ein Client-Objekt oder Director erstellt Objekt von der Art des CustomUser abhängig:Django Signale für das gleiche Modell schaffen
class CustomUser(AbstractEmailUser):
TYPE = (
(0, 'Client'),
(1, 'Director'),
type = models.PositiveSmallIntegerField(default=0, choices=TYPE)
class Client(models.Model):
user = models.OneToOneField(CustomUser)
class Director(models.Model):
user = models.OneToOneField(CustomUser)
def post_save_data(sender, instance, created, **kwargs):
if created and CustomUser.objects.get(email=instance.email).type == 0:
Client.objects.create(user=instance)
elif created and CustomUser.objects.get(email=instance.email).type == 1:
Director.objects.create(user=instance)
post_save.connect(post_save_data, sender=CustomUser)
Was auch immer ich es tun schafft immer Objekt für Kunden, Auch wenn ich Typ 1 wähle.
Können Sie Ihre 'AbstractEmailUser'-Klasse veröffentlichen? Und was passiert, wenn Sie 'type = models.PositiveSmallIntegerField (default = 1, selectives = TYPE)' ändern, erstellt es dann Director? – akimul
Es gibt hier einen Fehler: 'TYPE = ((0, 'Client'), (1, 'Director'),'. Sie müssen das schließende ') hinzufügen' wie 'TYPE = ((0, 'Client') (1, "Direktor"),) '. – akimul
Ja, aber das ist nicht das Problem –