sql >> Databasteknik >  >> RDS >> PostgreSQL

Django OneToOneField med eventuellt tomt fält

Om du vill ha after_homework fältet för att vara valfritt, bör du använda null=True och blank=True .

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

Du vill inte ha primary_key=True för after_homework - det skulle göra after_homework det primära nyckelfältet för VideoGamePurchase modell, vilket inte är vettigt om fältet är valfritt.

Det verkar som om dina migreringar är trasiga eftersom du hade primary_key=True för after_homework fältet tidigare. Den enklaste lösningen skulle vara att börja med en ny databas, ta bort migreringarna för den appen och sedan köra om makemigrations och migrate . Den här gången skapar migreringen automatiskt ett primärnyckelfält id för VideoGamePurchase modell.




  1. Är kapslade transaktioner tillåtna i MySQL?

  2. Gå med mig för en Microsoft Access med SQL Server Academy-session

  3. Kopiera/duplicera databas utan att använda mysqldump

  4. MySQL join - beställa resultat via en annan tabell PHP