First_name добавляется к кортежу
Я использую django-allauth. Я добавил дополнительные поля в форму (имя_и фамилия) в форме: myapp/forms.py
class CustomSignupForm(forms.Form):
first_name = forms.CharField(max_length=30, label="first_name", strip=True, widget=forms.TextInput(attrs={'placeholder': "name", }))
last_name = forms.CharField(max_length=30, label='last_name', strip=True, widget=forms.TextInput(attrs={'placeholder': 'last_name',}))
def signup(self, request, user):
user.first_name = self.cleaned_data['first_name'],
user.last_name = self.cleaned_data['last_name']
user.save()
return user
после чего в настройках я указал ссылку на эту форму. При регистрации эти два поля появились, но:
Теперь, при регистрации, мое имя_первое находится в кортеже.
Вывод в шаблоне:
{{user.first_name}}
Последнее имя отображается нормально. Что можно сделать, чтобы первое имя было не в кортеже, а просто строкой?
Вы поставили запятую в конце user.first_name = self.cleaned_data['first_name'],
Уберите запятую, и это решит вашу проблему.
Ваша проблема кажется легко устранимой, в конце user.first_name = self.cleaned_data['first_name'],
стоит запятая, и Django рассматривает это как кортеж.
Ваш forms.py
должен выглядеть следующим образом:
class CustomSignupForm(forms.Form):
first_name = forms.CharField(max_length=30, label="first_name", strip=True, widget=forms.TextInput(attrs={'placeholder': "name", }))
last_name = forms.CharField(max_length=30, label='last_name', strip=True, widget=forms.TextInput(attrs={'placeholder': 'last_name',}))
def signup(self, request, user):
user.first_name = self.cleaned_data['first_name'] # just removed the comma :)
user.last_name = self.cleaned_data['last_name']
user.save()
return user