2016-03-18 1 views
1

Ich benutze Django Rest Auth auf Django 1.9, um neue Benutzer auf dem System zu registrieren. Und ich muss in diesem Prozess zusätzlichen Code ausführen, um zusätzliche Daten in anderen Tabellen zu speichern.Django Rest Aut - Benutzer Registrierung

Jeder kennt den besten Weg, es zu tun?

Antwort

2

Schreiben Sie CustomRegisterSerializer und fügen Sie es zu settings.py Datei hinzu.

REST_AUTH_REGISTER_SERIALIZERS = { 
     "REGISTER_SERIALIZER":"common_app.serializers.CustomRegisterSerializer" 
    } 

schreiben save() Methode der neu geschaffenen Serializer und setzen einige zusätzliche ausführbaren Code.
Wenn Ihr Benutzermodell über zusätzliche Felder verfügt, können Sie Ihre Methoden validate_field schreiben.

Als Referenz können Sie überprüfen, rest_auth RegistrationSerializer hier https://github.com/Tivix/django-rest-auth/blob/master/rest_auth/registration/serializers.py

Ich hoffe, das hilft.

0

Ich bin einverstanden mit @ ashish2py ‚s reply above:

möchten jedoch ein Beispiel für benutzerdefinierte Serialisierer Methode für andere Referenzen speichern hinzuzufügen.

Schritte:

  1. In settings.py Datei unter der Zeile hinzufügen. (Vorausgesetzt, Ihren Namen App ist "common_app")

    REST_AUTH_REGISTER_SERIALIZERS = { 
        "REGISTER_SERIALIZER":"common_app.serializers.CustomRegisterSerializer" 
    } 
    
  2. In common_app/serializer.py Datei CustomRegisterSerializer Klasse hinzufügen, wie unten (die Überschreibung speichern Methode).

    class CustomRegisterSerializer(RegisterSerializer): 
        def save(self, request): 
        user = super(CustomRegisterSerializer, self).save(request) 
        logger.debug("[GroupProfile-Manager] Manager user registration #{}: {}".format(user.id, user.email)) 
    
    
        ### YOUR CUSTOM LOGIC GOES HERE ### 
    
        group_prof_obj.join(user=user, role='manager') 
    
        return user