2016-09-15 2 views
0

Я хотел бы сохранить и получить доступ к настраиваемому полю allauth. После сохранения формы и попыток доступа к данным, но она пуста. {{user.school}} Я добавляю только form.py. Нужно ли добавлять на models.py тоже?Как я могу получить доступ к django allauth custom filed

-> я изменить модели, но до сих пор я не могу получить доступ к школе подал ㅜㅜ)

forms.py из django.contrib.auth импорта get_user_model из Джанго импорта формы

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

Да.

Я бы расширить пользовательскую модель Джанго и

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

Привет @doniyor, когда я изменяю form.py, отображается ошибка. Пользовательский объект имеет нет атрибута 'profile'. Любая помощь в том, что я пропустил? – MrKarl

+0

@MrKarl вам нужно расширить модель пользователя, создав новую модель userprofile с отношением onetoone. подробнее: https://docs.djangoproject.com/en/1.10/topics/auth/customizing/#extending-the-existing-user-model – doniyor

Смежные вопросы