Django Аллах сохраняет данные профиля с формой регистрации - PullRequest
0 голосов
/ 26 февраля 2020

Я новичок в Django, я использую приложение allauth для создания регистрации пользователя. В моей регистрационной форме есть дополнительное поле, которое я могу sh. Не только (имя пользователя, имя, фамилия, имя) я sh также должен включить info в форму регистрации.
Когда я отправляю форму регистрации, только имя и фамилия сохраняются в базе данных, информация не сохраняется. Я думаю, это должно быть сохранено в модели профиля, но его там нет.

class Profile(models.Model):
    user = models.OneToOneField(User)
    info = models.CharField(max_length=128)

class CustomSignUpForm(Signup Form):
    first_name = forms.CharField(max_length=30)
    last_name = forms.CharField(max_length=30)
    info = forms.CharField(max_length=50)

    def signup(self, request, user):
        user.first_name = self.cleaned_data['first_name']
        user.last_name = self.cleaned_data['last_name']
        user.save()
        user.profile.info = self.cleaned_data['info']
        user.profile.save()


ACCOUNT_FORM = 'signup' 'myapp.forms.CustomSignupForm'

1 Ответ

0 голосов
/ 26 февраля 2020

Вы уверены, что объект Profile существует для этого пользователя, и вы не получаете ошибку RelatedObjectDoesNotExist в журналах? Если да, то вы должны создать объект профиля в форме регистрации выше.

Profile.objects.update_or_create(user=user, defaults={"info":self.cleaned_data['info']})
...