Как получить значение из UserProfile, если оно существует в другой modelForm, в качестве значения по умолчанию - PullRequest
1 голос
/ 05 сентября 2011

У меня определен 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 голосов
/ 05 сентября 2011

Одним из решений, хотя, возможно, и не самым элегантным, является привязка данных из словаря к объекту 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/

Заполнение этого поля, только если телефон установлен, довольно тривиально.

...