Estoy encontrando información contradictoria sobre si usar OneToOneField (Usuario) o ForeignKey (Usuario, único = Verdadero) al crear un modelo de Perfil de Usuario extendiendo el modelo de Usuario de Django.Django: Al extender el usuario, mejor utilizar OneToOneField (usuario) o ForeignKey (usuario, único = verdadero)?
¿Es mejor utilizar esto ?:
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
o esto ?:
class UserProfile(models.Model):
user = models.OneToOneField(User)
El Django Doc especifica OneToOneField, mientras que el Django Book example utiliza ForeignKey.
James Bennett también tiene dos puestos de blog que proporcionan ejemplos en conflicto, así:
En el primer puesto, Bennett proporciona algunas razones por las que pasado a utilizar ForeignKey vez de OneToOneField, pero no lo entiendo, especialmente cuando veo otras publicaciones que recomiendan lo contrario.
Tengo curiosidad por saber su preferencia y por qué. ¿Ó acaso importa?
No veo nada en el primer artículo de Bennett con respecto a los perfiles de usuario. –
@Ignacio - Disculpa, agregué un enlace al artículo equivocado. Debería haber sido en su publicación sobre "Extender el modelo de usuario". He corregido el enlace. Gracias por señalar esto. –
Para mí, http://stackoverflow.com/questions/5870537/whats-the-difference-between-django-onetoonefield-and-foreignkey es más claro de entender –