Si vous voulez le after_homework
le champ soit facultatif, alors vous devez utiliser null=True
et blank=True
.
class VideoGamePurchase(models.Model):
bought_by = models.ForeignKey(Person)
after_homework = models.OneToOneField(HomeWork, null=True, blank=True)
Vous ne voulez pas primary_key=True
pour l'after_homework
- ça ferait du after_homework
le champ clé primaire du VideoGamePurchase
modèle, ce qui n'a pas de sens si le champ est facultatif.
Il semble que vos migrations soient foirées car vous aviez primary_key=True
pour l'after_homework
champ plus tôt. La solution la plus simple serait de commencer avec une nouvelle base de données, de supprimer les migrations pour cette application, puis de relancer makemigrations
et migrate
. Cette fois, la migration créera automatiquement un champ de clé primaire id
pour le VideoGamePurchase
modèle.