2016-09-15 55 views
0

我想保存并访问自定义字段的allauth。保存表单并尝试访问数据后,该数据为空。 {{user.school}} 我只添加forms.py。我是否还需要在models.py上添加?如何访问django allauth自定义提交

- >我改款,但还是不能从django.contrib.auth进口get_user_model 从Django中进入学校申请ㅜㅜ)

forms.py 进口形式

SCHOOL = (
    ('', 'Select your school...'), 
    ('ucla.edu', 'UCLA'), 
    ('berkeley.edu', 'Berkeley'), 
) 

class SignupForm(forms.Form): 
    school = forms.ChoiceField(choices=SCHOOL, required=True) 

    def signup(self, request, user): 
     user.school = self.cleaned_data['school'] 
     user.save() 

models.py 
    class UserProfile(models.Model): 
     user = models.OneToOneField(User) 
     school = models.CharField(max_length=128) 

     def __unicode__(self): 
      return self.user.username 

提前致谢!

+0

您需要延长用户模型。 https://docs.djangoproject.com/en/1.10/topics/auth/customizing/#specifying-a-custom-user-model – cdvv7788

回答

0

是的。

我将延长Django的用户模型和

profile = user.profile 
profile.school = self.cleaned_data['school'] 
profile.save(update_fields=['school']) 
+0

嗨@ doniyor,当我改变forms.py显示错误'User'对象有没有属性'配置文件'。任何帮助,我错过了什么? – MrKarl

+0

@MrKarl您需要通过使用onetoone关系创建新的用户配置文件模型来扩展用户模型。更多:https://docs.djangoproject.com/en/1.10/topics/auth/customizing/#extending-the-existing-user-model – doniyor