sql >> Databáze >  >> RDS >> PostgreSQL

Django OneToOneField s možným prázdným polem

Pokud chcete after_homework být nepovinné, pak byste měli použít null=True a blank=True .

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

Nechcete primary_key=True pro after_homework - to by znamenalo after_homework pole primárního klíče VideoGamePurchase model, což nedává smysl, pokud je pole volitelné.

Zdá se, že vaše migrace jsou zpackané, protože jste měli primary_key=True pro after_homework pole dříve. Nejjednodušší opravou by bylo začít s novou databází, odstranit migrace pro danou aplikaci a poté znovu spustit makemigrations a migrate . Tentokrát migrace automaticky vytvoří pole primárního klíče id pro VideoGamePurchase model.




  1. Pořadí vyhodnocení příkazů a přiřazení proměnných v MySQL UNION

  2. Použití GROUP BY s FIRST_VALUE a LAST_VALUE

  3. Dotaz na pořadí podle posledních tří znaků sloupce

  4. Jediný příkaz MySQL pro sloučení dvou tabulek