如果UserProfile中的值如果在另一个modelForm中作为默认值存在,则该如何获取值

时间:2011-09-04 22:39:58

标签: django django-forms user-profile

我定义了UerProfile,需要为MyForm提取手机数据

 class UserProfile(models.Model):
     ...
     phone = models.CharField(max_length=20, blank=True)


 class CustomModel(models.Model):
     ...
     phone = models.CharField(max_length=20)


 class MyForm(forms.ModelForm):

     class Meta:
         model = CustomModel
         exclude = ['some_fields_but_not_phone',]

现在我需要从UserProfile中获取手机数据(如果已设置),以便在{{form.phone}}字段中预先填充值。然后,用户可以在提交表单时更改或保留原样。

1 个答案:

答案 0 :(得分:0)

一种解决方案,虽然可能不是最优雅的,但是在视图中将字典中的数据绑定到MyForm对象。

data = {
    'field1': 'data'
    'field2': 'data'
    'phone': request.user.get_profile().phone
}
form = MyForm(data)

此处有更多信息:https://docs.djangoproject.com/en/1.3/ref/forms/api/

如果设置'phone',则仅填充此字段从此处开始非常简单。