Я использую Modelform for User для редактирования first_name и last_name, но я хочу добавить к этому дополнительное поле из UserProfile (которое имеет отношение 1-к-1 к User).
class UserProfileInfoForm(forms.ModelForm):
""" Profile Model field specifications for edit.
"""
class Meta:
model = User
fields = ('first_name', 'last_name', 'user_phonemobile')
first_name = forms.CharField(
label = _('First name'),
max_length = 30,
required = True
)
last_name = forms.CharField(
label = _('Last name'),
max_length = 30,
required = True
)
user_phonemobile = forms.CharField(
label = _('Mobile phone'),
max_length = 15,
required = False,
)
У меня есть дополнительное поле в ModelForm (и отображается на странице), но я не могу его заполнить значением из другой модели (UserProfile). Я пытался сделать это подклассом init формы модели, но пока не повезло.
Конечно, я мог бы сделать его нормальной формой и заполнить его, на мой взгляд,
userdata = request.user.get_profile()
data = {
'first_name': request.user.first_name,
'last_name': request.user.last_name,
'user_phonemobile': userdata.user_phonemobile,
}
profileinfoform = UserProfileInfoForm(data)
Но при добавлении дополнительных полей в будущем создается впечатление, что это загромождает мое определение представления.
С уважением,
Gerard.