Django: Wenn Benutzer erweitert wird, besser OneToOneField (User) oder ForeignKey (User, unique = True)?

Ich bin suchen widersprüchliche Informationen auf, ob OneToOneField(Benutzer) oder ForeignKey(User, unique=True) bei der Erstellung eines Benutzerprofil-Modell durch die Verlängerung der Django-User-Modell.

Ist es besser, dies zu nutzen?:

class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)

oder?:

class UserProfile(models.Model):
    user = models.OneToOneField(User)

Den Django Doc gibt OneToOneField, während die Django Buch Beispiel ForeignKey verwendet.

James Bennett hat auch zwei Blog-posts, die Bereitstellung von widersprüchlichen Beispiele:

In der ehemaligen post, Bennett bietet einige Gründe, warum er wechselte mit ForeignKey statt OneToOneField, aber ich weiß nicht Recht bekommen, vor allem, wenn ich sehe andere Beiträge, die empfehlen das Gegenteil.

Ich bin neugierig, zu wissen, Ihre Vorlieben und warum. Oder, ist es auch egal?

Kommentar zu dem Problem - Öffnen
Ich sehe nichts in Bennett ' s Erster Artikel über den Benutzer-Profilen. Kommentarautor: Ignacio Vazquez-Abrams
@Ignacio - Sorry, ich habe einen link auf den falschen Artikel. Man sollte schon zu seinem post auf "Erweitern des User-Modell". Ich habe es korrigiert, der link. Vielen Dank für diesen Hinweis. Kommentarautor: Tony Guinta
Für mich, stackoverflow.com/questions/5870537/... ist klarer zu verstehen Kommentarautor: Chemical Programmer

InformationsquelleAutor der Frage Tony Guinta | 2010-07-11

Schreibe einen Kommentar