我正在使用Modelform for User来编辑first_name和last_name,但我想从UserProfile中创建一个额外的字段(它具有1对1与用户的关系)添加到此。Django:如何启动/收集来自两个模型的字段数据在一个表单定义中
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额外字段(在页面上显示的),但我不能让它与其他模型(用户配置)值填充。一直试图做模型的init,但目前还没有运气。
我可以ofcourse使它成为一个正常的形式,并且在我看来
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)
填充像这样但在未来增加额外的字段时,感觉这样会弄乱我的视图定义。
Regards,
Gerard。
嗨akaihola,因为它似乎这种方式会是最简单的。我假设例子中的user_form和profile_form是ModelForms? – GerardJP 2009-12-08 10:38:29
@GerardJP是的。只记得先验证两个,然后保存。 – akaihola 2010-03-04 11:24:29