Найти - Пользователи
Полная версия: ModelChoiceField QuerySet
Начало » Django » ModelChoiceField QuerySet
1
securelord
Для отображения в форме пользователей я использую 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(), форма не отображается.

Вопрос:
Где копать?
Александр Кошелев
securelord
Если я отбираю не все, а только например поле first_name, форма не отображается. Я заметил, чуть запрос сложнее objects.all(), форма не отображается.
ModelChoiceField ожидает что ему дадут QuerySet( у каждого объекта которого он забирает pk и __unicode__), а не ValuesQuerySet, поэтому надо написать обертку над ValuesQuerySet, которая будет отдавать то что ожидает форма. Или ещё какую-нибудь прослойку.
securelord
Daevaorn
Можно разъяснить подробнее? Для человека мыслящего sql-ем, QuerySet и ValuesQuerySet не совсем понятны.
Если в sql-е возвращается таблица, то сдесь….
playpauseandstop
Для человека мыслящего sql-ем
зачем же тогда в ORM пошли? :)
securelord
playpauseandstop

Если откинуть орм, то отпадет и forms. А зачем тогда Джанга?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB