2016-09-15 10 views
0

allauthのカスタムフィールドに保存してアクセスしたいと思います。フォームを保存してデータにアクセスしようとしても、それは空です。 {{user.school}} 私はforms.pyを追加するだけです。 models.pyにも追加する必要がありますか?django allauth customにアクセスするにはどうすればいいですか

- >私はモデルを変更するが、それでも、私は学校がㅜㅜ提出アクセスすることはできません)

forms.py django.contrib.auth輸入get_user_model からDjangoのインポートフォームから

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'オブジェクトには属性 'profile'はありません。何か私が逃した助け? – MrKarl

+0

@MrKarlあなたはonetooneの関係で新しいuserprofileモデルを作成することによって、ユーザーモデルを拡張する必要があります。 more:https://docs.djangoproject.com/ja/1.10/topics/auth/customizing/#extending-the-existing-user-model – doniyor

関連する問題