Se você quiser o
after_homework
campo seja opcional, então você deve usar null=True
e blank=True
. class VideoGamePurchase(models.Model):
bought_by = models.ForeignKey(Person)
after_homework = models.OneToOneField(HomeWork, null=True, blank=True)
Você não quer
primary_key=True
para o after_homework
- isso tornaria o after_homework
o campo de chave primária de VideoGamePurchase
model, o que não faz sentido se o campo for opcional. Parece que suas migrações estão erradas porque você tinha
primary_key=True
para o after_homework
campo mais cedo. A solução mais fácil seria começar com um banco de dados novo, excluir as migrações desse aplicativo e executar novamente makemigrations
e migrate
. Desta vez, a migração criará automaticamente um campo de chave primária id
para a VideoGamePurchase
modelo.