Ich finde widersprüchliche Informationen darüber, ob OneToOneField (User) oder ForeignKey (User, unique = True) beim Erstellen eines UserProfile-Modells durch Erweitern des Django-Benutzermodells verwendet werden soll.Django: Wenn Benutzer erweitert wird, besser OneToOneField (User) oder ForeignKey (User, unique = True) zu verwenden?
Ist es besser, zu verwenden, um dies ?:
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
oder das ?:
class UserProfile(models.Model):
user = models.OneToOneField(User)
Die Django Doc gibt OneToOneField, während der Django Book example ForeignKey verwendet.
James Bennett hat auch zwei Blog-Artikel, dass die Bereitstellung widersprüchliche Beispiele auch:
In der ehemaligen Post stellt Bennett einige Gründe, warum er stattdessen mit ForeignKey geschaltet von OneToOneField, aber ich verstehe es nicht ganz, besonders wenn ich andere Beiträge sehe, die das Gegenteil empfehlen.
Ich bin gespannt auf Ihre Präferenz und warum. Oder spielt es überhaupt eine Rolle?
Ich sehe nichts in Bennetts ersten Artikel über Benutzerprofile. –
@Ignacio - Entschuldigung, ich habe einen Link zum falschen Artikel hinzugefügt. Es hätte zu seinem Beitrag über "Erweiterung des Nutzermodells" kommen sollen. Ich habe den Link korrigiert. Danke, dass du darauf hingewiesen hast. –
Für mich ist http://stackoverflow.com/questions/5870537/whats-the-difference-between-django-onetoonefield-and-foreignkey klarer zu verstehen –