2016-05-31 7 views
-1

Empfehlen Sie eine neue model.py eigene Anmeldung und Verwaltung für Benutzer zu erstellen? oder lieber Felder zum Benutzermodell hinzufügen, das Django bereitstellt?Benutzerverwaltung in Django

Ich möchte eine Tabelle von Benutzern mit bestimmten Parametern wie ID-Nummer, Geburtsdatum, E-Mail, Position, usw. halten. Aber ich bin nicht sicher, ob der Benutzer, der Django bereitstellt oder ein neues Modell erstellen, zu ändern .

Was empfehlen Sie?

+0

Mögliche Duplikat [Django - zusätzliche Felder für Benutzerformular] (http://stackoverflow.com/questions/24945440/django-extra-fields-for-user-form) –

+0

Sie https sollten überprüfen: //docs.djangoproject.com/de/1.9/topics/auth/customizing/#extending-the-existing-user-model – slider

Antwort

1

Ich denke, es ist besser, ein Profilmodell zu erstellen, in dem ein Benutzerfeldfeld eine OneToOneField-Beziehung mit der Benutzerinstanz hat.

from django.conf import settings 
. 
. 

class Profile(models.Model): 
    user=models.OneToOneField(settings.AUTH_USER_MODEL)#creates onetoone relationship with the user model 
    IdNo=models.PositiveIntegerField() 
    email=models.EmailField() 
    date_of_birth=models.DateField("DOB",help_text="YYYY-MM-DD",blank=True,null=True) 
    def __unicode__(self): 
     return '{} Profile'.format(self.user.username) 
0

Djangos Auth-Paket ist gut definiert und robust. Ich empfehle Ihnen dringend, das ursprüngliche Django-Modell für Benutzer zu verwenden.

Wenn Sie jedoch ein zusätzliches Feld im Benutzermodell hinzufügen möchten, können Sie Ihr eigenes Modell anpassen, indem Sie den Benutzer mit einem Fremdschlüssel auf das Benutzermodell verweisen.

Verwandte Themen