2016-01-28 2 views
3

Я пытаюсь получить выбор да/нет на булевом поле. Виджет по умолчанию - checkboxinput. Однако, если я переопределить виджет по умолчанию с Select я получаю: NameError: Select is not definedФорма модели Django, как вывести select Yes/No from Booleanfield

Я думаю, что это может быть потому, что мне не нужно настроить Да/Нет коррелируют с логическими значениями в BooleanField, но не уверен, как это должно быть сделано ?

Модель:

class User(models.Model): 
    online_account = models.BooleanField() 

Форма:

class AccountForm(forms.ModelForm): 

    class Meta: 
     model = User 
     fields = ('online_account') 
     labels = { 
      'online_account': 'Do you have an online account', 
     } 
     widgets = {'online_account': Select()} 

ответ

4

я нашел (и протестированы с Django 1.9.6) this gist. Он должен сделать трюк:

from django import forms 

class Form(forms.Form): 
    field = forms.TypedChoiceField(coerce=lambda x: x =='True', 
            choices=((False, 'No'), (True, 'Yes'))) 
Смежные вопросы