2016-04-22 20 views
1

Ich verwende Django-Rest-Auth für Authentifizierung und Registrierung. Ich verwende E-Mail, um den Benutzer mit Passwort anzumelden. Ich möchte den Vornamen und den Nachnamen des Benutzers zum Zeitpunkt der Registrierung speichern (vielleicht ein paar mehr Felder) dh Auf der Client-Seite auf Anmeldeformular wird folgende Felder haben (E-Mail, Passwort, Vorname, Nachname, etc ..). Derzeit hat das Registrierungsformular nur E-Mail, Passwort 1 und Passwort 2 Felder und die Registrierung ist grundsätzlich erfolgreich.Django Restauth erweitern Registrierungsformular

enter image description here

Mein settings.py hat folgende:

#This is required otherwise it asks for email server 
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' 
ACCOUNT_AUTHENTICATION_METHOD = 'email' 
ACCOUNT_EMAIL_REQUIRED = True 
ACCOUNT_USERNAME_REQUIRED = False 

#Following is added to enable registration with email instead of username 
AUTHENTICATION_BACKENDS = (
# Needed to login by username in Django admin, regardless of `allauth` 
"django.contrib.auth.backends.ModelBackend", 

#`allauth` specific authentication methods, such as login by e-mail 
"allauth.account.auth_backends.AuthenticationBackend", 
) 

Wie kann ich das erreichen?

+0

Können Sie erklären, was Sie tun möchten? Versuchen Sie, das Benutzermodell zu erweitern, um weitere Felder hinzuzufügen? –

+0

Ich bin mir nicht sicher, ob ich das Benutzermodell wirklich erweitere, jetzt muss ich in meine Admin-Oberfläche gehen und einem Benutzer die Attribute Vorname, Nachname usw. manuell hinzufügen. Ich möchte diese Felder in meinem Registrierungsformular haben, damit diese Daten bei erfolgreicher Registrierung automatisch für neu angelegte Benutzer gespeichert werden. – Nitish

+0

Ok ich denke, ich weiß, was Sie tun möchten, sehen Sie sich meine Antwort unter –

Antwort

2

Wenn Sie das Registrierungsformular erweitern möchten, müssen Sie Ihren eigenen benutzerdefinierten Benutzer mit mehr Feldern erstellen.

So in Ihren Modellen Datei haben diese

from django.contrib.auth.models import (
    AbstractBaseUser, PermissionsMixin, 
) 

class CustomUser(AbstractBaseUser, PermissionsMixin): 
    email = models.EmailField(max_length=254, unique=True) 
    first_name = models.TextField(default='') 
    last_name = models.TextField(default='') 
    #any other fields you want 

    USERNAME_FIELD = 'email' 

dann in Ihren Einstellungen Sie diese

AUTH_USER_MODEL = 'app_name.CustomUser' 

wollen und dann django Rest dieses Benutzermodell als verwenden sollten, wenn Sie dieses Formular Seite

besuchen

Ich hoffe, das hilft!

EDIT

Ich glaube, das automatisch Passwörter behandeln sollte, da es AbtractBaseUser erstreckt, lassen Sie mich wissen, ob es nicht

tut
+0

Es gibt mir in der Konsole> django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL bezieht sich auf Modell 'flights.CustomUser', die nicht installiert wurde. Vor der Migration natürlich, sollte ich migrieren? – Nitish

+0

yea müssen Sie migrieren :) –

+0

Es gibt mir denselben Fehler, wenn ich die Migration mache – Nitish

Verwandte Themen