Уведомления

Группа в Telegram: @pythonsu

#1 Май 7, 2008 18:49:19

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

ModelChoiceField QuerySet

Для отображения в форме пользователей я использую ModelChoiceField:

# -*- coding:utf-8 -*-
from django import newforms as forms
from django.contrib.auth.models import User
users = User.objects.all()
class AddForm(forms.Form):
    user_work =forms.ModelChoiceField(queryset=users)


В поле формы user_work отображаются только данные поля username таблицы auth_user.
Если я отбираю не все, а только например поле first_name, форма не отображается. Я заметил, чуть запрос сложнее objects.all(), форма не отображается.

Вопрос:
Где копать?



Офлайн

#2 Май 7, 2008 19:09:49

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

ModelChoiceField QuerySet

securelord
Если я отбираю не все, а только например поле first_name, форма не отображается. Я заметил, чуть запрос сложнее objects.all(), форма не отображается.
ModelChoiceField ожидает что ему дадут QuerySet( у каждого объекта которого он забирает pk и __unicode__), а не ValuesQuerySet, поэтому надо написать обертку над ValuesQuerySet, которая будет отдавать то что ожидает форма. Или ещё какую-нибудь прослойку.



Офлайн

#3 Май 8, 2008 11:31:00

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

ModelChoiceField QuerySet

Daevaorn
Можно разъяснить подробнее? Для человека мыслящего sql-ем, QuerySet и ValuesQuerySet не совсем понятны.
Если в sql-е возвращается таблица, то сдесь….



Офлайн

#4 Май 8, 2008 12:31:39

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Офлайн

#5 Май 8, 2008 19:55:16

playpauseandstop
От:
Зарегистрирован: 2007-10-31
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

ModelChoiceField QuerySet

Для человека мыслящего sql-ем
зачем же тогда в ORM пошли? :)



Офлайн

#6 Май 12, 2008 10:06:16

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

ModelChoiceField QuerySet

playpauseandstop

Если откинуть орм, то отпадет и forms. А зачем тогда Джанга?



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version