#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) могу сильно ошибаться, т.к. не помню уже как можно узнать свой профайл
Комментариев нет:
Отправить комментарий