Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 19, 2008 15:13:48

securelord
От:
Зарегистрирован: 2006-08-31
Сообщения: 129
Репутация: +  0  -
Профиль   Отправить e-mail  

ModelChoiceField. Вопрос

Для вывода в форму всех пользователей в виде выпадающего списка я использую

users = User.objects.all()
class EditForm(forms.Form):
user_work =forms.ModelChoiceField(queryset=users, label="Пользователь")
<form action="/redo/" method="POST">
<table>
{{ form.as_table }}
</table>
<p><input type="submit" value="Submit"></p>
</form>
        form = EditForm(initial={'id'     : redo_list.id,
'user_work' : request.user.username})
В выпадающем списке отображаются все пользователи (т.е. поле username).
Но когда я передаю эту же самую форму в какой нибудь вьювер, то в request.POST попадает не username а id. Измененная форма валидируется нормально, данные из нее можно сохранить, но мне нужно получать не id из нее а username в явном виде.



Отредактировано (Авг. 19, 2008 15:16:36)

Офлайн

#2 Авг. 19, 2008 15:50:42

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

ModelChoiceField. Вопрос

А причем тут RequestContext?

Если вы работаете с формой, то работайте с ней до конца и не докапывайтесь до POST данных вручную. После валидации формы в form.cleaned_data будет объект выбранного пользователя, из которого вы с легкостью получите username.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version