Necesito extender el usuario django con algunos campos adicionales. He encontrado 2 maneras diferentes allíForeignKey vs OneToOne campo django
class UserProfile(models.Model):
user = models.OneToOneField(User)
#other fields
O
class UserProfile(models.Model):
user = models.ForeignKey(User)
#other fields
¿No son iguales? Después de sincronizarlos, no vi ninguna diferencia en la base de datos mysql
Después de sincronizarlos, no vi ninguna diferencia en la base de datos mysql, me preguntaba cómo distinguir – sumit
La única diferencia * en la base de datos * es una restricción única en la columna con un uno a uno. De hecho, 'OneToOneField' es simplemente' ForeignKey (unique = True) '. –
No verá ninguna diferencia en su base de datos, ya que syncdb no cambia las tablas una vez que están definidas, tendrá que soltarlas y volver a crearlas. Sin embargo, puede usar 'sqlall' para mostrar las diferentes salidas, como dice Chris, OneToOne tiene una restricción única. –