Wenn du die after_homework
willst optional sein, dann sollten Sie null=True
verwenden und blank=True
.
class VideoGamePurchase(models.Model):
bought_by = models.ForeignKey(Person)
after_homework = models.OneToOneField(HomeWork, null=True, blank=True)
Sie wollen nicht primary_key=True
für die after_homework
- das würde die after_homework
machen das Primärschlüsselfeld von VideoGamePurchase
model, was keinen Sinn macht, wenn das Feld optional ist.
Es sieht so aus, als wären Ihre Migrationen durcheinander geraten, weil Sie primary_key=True
hatten für die after_homework
Feld früher. Die einfachste Lösung wäre, mit einer neuen Datenbank zu beginnen, die Migrationen für diese App zu löschen und dann makemigrations
erneut auszuführen und migrate
. Dieses Mal erstellt die Migration automatisch ein Primärschlüsselfeld id
für den VideoGamePurchase
Modell.