Pokud chcete after_homework
být nepovinné, pak byste měli použít null=True
a blank=True
.
class VideoGamePurchase(models.Model):
bought_by = models.ForeignKey(Person)
after_homework = models.OneToOneField(HomeWork, null=True, blank=True)
Nechcete primary_key=True
pro after_homework
- to by znamenalo after_homework
pole primárního klíče VideoGamePurchase
model, což nedává smysl, pokud je pole volitelné.
Zdá se, že vaše migrace jsou zpackané, protože jste měli primary_key=True
pro after_homework
pole dříve. Nejjednodušší opravou by bylo začít s novou databází, odstranit migrace pro danou aplikaci a poté znovu spustit makemigrations
a migrate
. Tentokrát migrace automaticky vytvoří pole primárního klíče id
pro VideoGamePurchase
model.