Wednesday, 15 May 2013

Django Allauth not saving custom form -



Django Allauth not saving custom form -

i adding fields signup, user created , saved info aren't reaching db. there no custom user model. additional fields go different table, different model.

settings.py

socialaccount_auto_signup = false account_signup_form_class = 'myapp.forms.userdataform' login_redirect_url = '/' socialaccount_query_email = true socialaccount_providers = { 'facebook': { 'scope': ['email'], 'method': 'js_sdk' # instead of 'oauth2' } }

models.py

from django.contrib.auth.models import user django.db import models django import forms class userdata(models.model): user = models.onetoonefield(user) year = models.charfield(max_length=4) month = models.charfield(max_length=2) day = models.charfield(max_length=2) hr = models.charfield(max_length=2) min = models.charfield(max_length=2) sec = models.charfield(max_length=2) latdeg = models.charfield(max_length=2) latmin= models.charfield(max_length=2) londeg = models.charfield(max_length=2) lonmin= models.charfield(max_length=2) def __unicode__(self): homecoming self.user.username

forms.py

from myapp.models import userdata django.contrib.auth.models import user django import forms django.forms.widgets import hiddeninput class userdataform(forms.modelform): class meta: model = userdata fields = ('year','month','day','hour','minute','sec','latdeg','latmin','londeg','lonmin') def signup(self,request, user): user.username = user.username user.year = self.cleaned_data['year'] user.month = self.cleaned_data['month'] user.day = self.cleaned_data['day'] user.hour = self.cleaned_data['hour'] user.minute = self.cleaned_data['minute'] user.sec = self.cleaned_data['sec'] user.latdeg = self.cleaned_data['latdeg'] user.latmin = self.cleaned_data['latmin'] user.londeg = self.cleaned_data['londeg'] user.lonmin = self.cleaned_data['lonmin'] user.save()

ok, solved myself afte while did form signup def:

def signup(self,request,user): user=user.objects.get(email=request.email) year = request.post.get('year', '') month = request.post.get('month', '') day = request.post.get('day', '') hr = request.post.get('hour', '') min = request.post.get('minute', '') sec = request.post.get('sec', '') latdeg = request.post.get('latdeg', '') latmin = request.post.get('latmin', '') londeg = request.post.get('londeg', '') lonmin = request.post.get('lonmin', '') userdata_obj = userdata(user=user,year=year, month=month, day=day, hour=hour,minute=minute, sec=sec,latdeg=latdeg,latmin=latmin,londeg=londeg,lonmin=lonmin) userdata_obj.save()

django django-forms django-allauth

No comments:

Post a Comment