2016-03-21 5 views
0

Ich versuche Daten von meiner angularJS App zu übergeben, um django mit django-rest-auth zu bearbeiten.Gesäuberte Daten erreichen das Modell nicht - django rest auth

In meiner Konsole kann ich sehen, dass die Daten korrekt erreicht werden (insbesondere "Geschlecht" und "Yob").

Allerdings scheint es, dass nach „cleaned_data“ bekommt called- die Daten nicht am Ende in meinem django Benutzermodell

Note- Ich habe zwei Benutzermodelle bekommt eingerichtet (eine davon ist die Aktie django Benutzertabelle ist der andere ein Benutzer Tabelle I in models.py erstellt haben)

from allauth.account.adapter import DefaultAccountAdapter # refer to allauth.account.adapter 
from stashd.models import User, AccountProfile 
import datetime, json 


class MyAccountAdapter(DefaultAccountAdapter): 

    def save_user(self, request, user, form, commit=True): 

     system_account = super(StashdAccountAdapter, self).save_user(request, user, form, commit) 
     print form 
## Print form shows all the data, but the cleaned_data get's rid of it 
     data = form.cleaned_data 
     first_name = data.get('first_name') 
     username = data.get('username') 
     last_name = data.get('last_name') 
     email = data.get('email') 
     # gender = data.get('gender') 
     # yob = data.get('yob') 
     # dob = datetime.date(int(yob), 1, 1) 
     info = {} 
     # for k, v in [('first', username), ('first', first_name), ('last', last_name), ('email', email)]: 
     #  if v: 
     #   info[k] = v 
     for k, v in [('email', email)]: #,('dob',dob),('gender',gender) 
      if v: 
       info[k] = v 

     user = User(**info) 
     user.save() 

     AccountProfile(user=user, account=system_account).save() 

     return system_account 
+0

Können Sie nach Fehlern im Formular suchen ('print form._errors')? – mariodev

Antwort

0

Sie müssen form.is_valid() auf dem Formular rufen Sie die cleaned_data

+0

Ich habe das schon versucht- hatte keinen Erfolg – Ycon

+0

Entschuldigung, ich habe es nicht in Ihrem Code gesehen und war mein bestes für eine schnelle Lösung :) Wo rufst du es an? – xthestreams

0

in django Dokumentation füllen es heißt, dass,

Sobald Sie eine Formularinstanz mit einem Satz von Daten erstellt haben und es validiert, können Sie die sauberen Daten zugreifen über seine cleaned_data

Attribut Sie können aus here Dokumentation davon beziehen.