#python #forms #шаблоны #django
Добрый день.
Есть форма пользовательского профиля.
При выводе на экран ее надо заполнить данными текущего пользователя.
Как это можно сделать?
class Profile(models.Model):
user = models.OneToOneField(User)
img = models.ImageField(upload_to='user_pic/', blank=True, verbose_name='аватар')
phone = models.IntegerField(max_length=10, verbose_name=u'контактный телефон')
class ProfileForm(forms.Form):
first_name = forms.CharField(label=u'Имя', max_length=30, required=True)
last_name = forms.CharField(label=u'Фамилия', max_length=30, required=True)
password = forms.CharField(label=u'Пароль', widget=forms.PasswordInput, min_length=4,
required=True)
email = forms.EmailField(label=u'E-mail', required=True)
phone = forms.CharField(label=u'Контактный телефон', max_length=10, required=True)
img = forms.ImageField(label=u'Ваш автар или логотип', required=False)
@render_to('profile.html')
def edit_profile(request):
form = LoginForm()
{{ form_profile.as_p }}
Хочется заполнять форму автоматически (руками в шаблоне чтобы особо ничего не расписывать).
Спасибо!
Ответы
Ответ 1
На сколько я понял, Вам необходмо воспользоваться наследованием форм от моделей документация. Используя правильное наследование формы от модели, вы сможете автоматически заполнять форму данными из уже существуещего обьекта: form = ProfileForm(instance=user)Ответ 2
Например можно передать в форму словарь data = {'first_name': 'Ivan', 'last_name': 'Ivanov', 'email': 'a@b.ru'} form = ProfileForm(data) Попробуйте еще user = Profile.objects.get(user=self) form = ProfileForm(user) могу сильно ошибаться, т.к. не помню уже как можно узнать свой профайл
Комментариев нет:
Отправить комментарий