Ich habe versucht, ein ManyToManyField Benutzer zuerst eine OneToOneField-Beziehung zu verwenden. Hier ist mein Code:Django OneToOne Felder an Benutzer Programmierung Fehler
ENTERPRISE_TYPE_CHOICES = (
('a', "A"),
('b', "B"),
('c', "C"),
)
class Enterprise(models.Model):
et_type = models.CharField(
max_length = 10,
choices=ENTERPRISE_TYPE_CHOICES,
default='a'
)
name = models.TextField(max_length=100)
number = models.TextField(max_length=7)
def __str__(self):
return "%s %s %s" % (self.et_type, self.name, self.number)
class Secretaire(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
workshop = models.ManyToManyField(Enterprise)
@receiver(post_save, sender=User)
def create_user_secretaire(sender, instance, created, **kwargs):
if created:
Secretaire.objects.create(user=instance)
@receiver(post_save, sender=User)
def save_user_secretaire(sender, instance, **kwargs):
instance.profile.save()
Dann in der Python manage.py Shell Ich versuche:
from django.contrib.auth.models import User
u = User.objects.create(username="a", email="[email protected]", password="a")
Und es um den Fehler werfen:
ProgrammingError: Beziehung "helpdesk_secretaire" existiert nicht ZEILE 1: INSERT IN "helpdesk_secretaire" ("user_id") WERTE (11) RE ...
(Der Benutzer ist immer noch erstellt, aber kein Zugriff auf user.secretaire, it wirft den gleichen Fehler)
Haben Sie eine Ahnung, warum ich diesen Fehler bekomme?
Sicher haben Sie makemigrations und migrieren? – e4c5
Haben Sie Ihre Migrationen erstellt und ausgeführt? –
... Vielen Dank. –