PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Django OneToOneField z możliwym pustym polem

Jeśli chcesz wykonać after_homework pole ma być opcjonalne, należy użyć null=True i blank=True .

class VideoGamePurchase(models.Model):
    bought_by = models.ForeignKey(Person)
    after_homework = models.OneToOneField(HomeWork, null=True, blank=True)

Nie chcesz, aby primary_key=True za after_homework - to sprawiłoby, że after_homework pole klucza podstawowego VideoGamePurchase model, co nie ma sensu, jeśli pole jest opcjonalne.

Wygląda na to, że Twoje migracje są pomieszane, ponieważ masz primary_key=True za after_homework pole wcześniej. Najłatwiejszą poprawką byłoby rozpoczęcie od nowej bazy danych, usunięcie migracji dla tej aplikacji, a następnie ponowne uruchomienie makemigrations i migrate . Tym razem migracja automatycznie utworzy pole klucza podstawowego id dla VideoGamePurchase model.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Odśwież widoki zmaterializowane za pomocą współbieżności

  2. Skopiuj tabelę z jednej bazy danych do drugiej w Postgres

  3. Migracja bazy danych django nie powiodła się z postgresem

  4. SKOPIOWAĆ tylko niektóre kolumny z wejściowego pliku CSV?

  5. Opisać zestaw wyników w PostgreSQL?