Se vuoi il after_homework
campo per essere facoltativo, quindi dovresti usare null=True
e blank=True
.
class VideoGamePurchase(models.Model):
bought_by = models.ForeignKey(Person)
after_homework = models.OneToOneField(HomeWork, null=True, blank=True)
Non vuoi primary_key=True
per il after_homework
- questo renderebbe il after_homework
il campo della chiave primaria del VideoGamePurchase
modello, che non ha senso se il campo è facoltativo.
Sembra che le tue migrazioni siano incasinate perché avevi primary_key=True
per il after_homework
campo prima. La soluzione più semplice sarebbe iniziare con un nuovo database, eliminare le migrazioni per quell'app, quindi eseguire nuovamente makemigrations
e migrate
. Questa volta, la migrazione creerà automaticamente un campo chiave primaria id
per il VideoGamePurchase
modello.