Ich muss django Benutzer mit einigen zusätzlichen Feldern erweitern. Ich fand zwei verschiedene Möglichkeiten gibtForeignKey vs OneToOne Feld django
class UserProfile(models.Model):
user = models.OneToOneField(User)
#other fields
ODER
class UserProfile(models.Model):
user = models.ForeignKey(User)
#other fields
Sind sie nicht gleich? Nach der Synchronisierung, sah ich keinen Unterschied in MySQL-Datenbank
Nach der Synchronisierung, sah ich keinen Unterschied in der MySQL-Datenbank, ich fragte, wie es unterscheidet – sumit
Der einzige Unterschied * in der Datenbank * ist eine eindeutige Einschränkung für die Spalte mit einem eins zu eins. Tatsächlich ist 'OneToOneField' lediglich' ForeignKey (unique = True) ''. –
Sie würden keinen Unterschied in Ihrer Datenbank sehen, da syncdb die Tabellen nicht ändert, sobald sie definiert sind, Sie müssten sie löschen und neu erstellen. Sie können jedoch 'sqlall' verwenden, um die verschiedenen Ausgaben zu zeigen - wie Chris sagt, ein OneToOne hat eine einzigartige Einschränkung. –