Ако искате after_homework
полето да не е задължително, тогава трябва да използвате null=True
и blank=True
.
class VideoGamePurchase(models.Model):
bought_by = models.ForeignKey(Person)
after_homework = models.OneToOneField(HomeWork, null=True, blank=True)
Не искате primary_key=True
за after_homework
- това би направило after_homework
полето за първичен ключ на VideoGamePurchase
модел, което няма смисъл, ако полето не е задължително.
Изглежда, че вашите миграции са объркани, защото сте имали primary_key=True
за after_homework
поле по-рано. Най-лесното решение би било да започнете с нова база данни, да изтриете миграциите за това приложение и след това да стартирате отново makemigrations
и migrate
. Този път миграцията автоматично ще създаде поле за първичен ключ id
за VideoGamePurchase
модел.