Django Benutzerprofil
Wenn das hinzufügen von Feldern zu einem Benutzerprofil, wie Standort, Geschlecht, Arbeitgeber, etc., soll ich werden das hinzufügen von zusätzlichen Spalten django.contrib.auth.models.User
und speichern es dort? Oder sollte ich erstellen Sie eine neue Tabelle zum speichern von Benutzerprofilinformationen?
Auch, wenn ein user-uploads ein Profil Bild, sollte ich das speichern dieser in der gleichen Tabelle? (Hinweis: dies ist nicht ein Produktions-server, ich bin gerade dabei diese auf meinem lokalen runserver, um Dinge herauszufinden). Danke
InformationsquelleAutor der Frage David542 | 2011-05-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Machen Sie ein Modell für die Anwender Profil:
Konfigurieren Sie dann in
settings.py
:InformationsquelleAutor der Antwort Ezequiel Marquez
InformationsquelleAutor der Antwort Dmitry
Django bietet eine Möglichkeit, speichert zusätzliche Informationen über die Benutzer in einer getrennten Tabelle (sogenannte Benutzer-Profil).
InformationsquelleAutor der Antwort vicvicvic
Aktuellen Django ist 1.9, und hier sind einige updates für das veraltete akzeptierte Antwort
models.OneToOneField(User)
related_name='profile'
.__str__()
und.format()
für Python 3wie so
Mit
related_name
Sie können auf das Profil eines Benutzers leicht, zum Beispiel fürrequest.user
Keine Notwendigkeit für zusätzliche Suchvorgänge.
InformationsquelleAutor der Antwort C14L
Ab Django 1.5 können Sie ersetzen die Standard-Benutzer mit Ihrem benutzerdefinierten Objekt mit einem einfachen Einstellungen Eintrag:
Etwas mehr details, überprüfen Sie diese Django-Dokumentation Eintrag.
InformationsquelleAutor der Antwort Nicolae Surdu
Gibt es eine Lösung, die ich gefunden hier. Im Grunde haben Sie nur die Erweiterung der Standard-form
UserCreationForm
aber halten die gleichen Namen. Es arbeitet nahtlos mit dem Weg Django - docs sagen Sie zu tunUserProfiles
.InformationsquelleAutor der Antwort hitokiri82
Antwort kann aktualisiert werden, um die add-signal-Empfänger, die das Profil erstellen wenn es nicht vorhanden ist, und aktualisieren, wenn es schon da ist.
@receiver(post_save, sender=User)
def create_or_update_user_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance)
instance.profile.save()
Diese https://simpleisbetterthancomplex.com/tutorial/2016/11/23/how-to-add-user-profile-to-django-admin.html post enthält auch wie zu Bearbeiten, Liste der benutzerdefinierten Profil im admin-panel.
InformationsquelleAutor der Antwort Sachin G.