PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Django OneToOneField с възможно празно поле

Ако искате 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 модел.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преобразувайте екранизирания символ на Unicode обратно в действителен знак в PostgreSQL

  2. Как да използвам настройките на tcp_keepalives в Postgresql?

  3. Извикването на transform() без зададен SRID не се поддържа

  4. Генериране на поредица от дати, използвани в for цикъл

  5. Услугата PostgreSQL не може да спре/стартира/рестартира