получение сообщения об ошибке Введите список значений (проверка с использованием форм django) - PullRequest
2 голосов
/ 16 марта 2012

Я использую MultipleChoiceField и уже упомянул required=False.Тогда почему я получаю эту ошибку Username: Enter a list of values.

def get_my_choices():
  users = User.query()
  choices_list = [(x.key.id(), x.email) for x in users]
  return choices_list

class MyForm(forms.Form):
  username = forms.MultipleChoiceField(required=False, choices=get_my_choices())

Я делаю что-то неправильно?спасибо: -)

Ответы [ 2 ]

1 голос
/ 26 декабря 2012

Вы хотите вернуть только один выбор, но вы используете MultipleChoiceField.

Если вы измените его на ChoiceField, он будет работать.

0 голосов
/ 16 мая 2013

Реализация класса Widget, который знает, как извлечь свои данные из MultiValueDict:

class SelectMultiple(forms.widgets.SelectMultiple):
def value_from_datadict(self, data, files, name):
    try:
        return data.getall(name)
    except:
        return data.get(name, None)

и передать его конструктору Fields: MultipleChoiceField (widget = SelectMultiple)Используйте item_type = unicode для поля.

field = db.ListProperty (item_type = unicode, choices = ...)

Источник: http://vanderwijk.info/blog/google-app-engine-django-and-multiplechoicefield/

...