Как использовать каркас формы Django для выбора параметров? - PullRequest
8 голосов
/ 25 января 2011

http://docs.djangoproject.com/en/dev/ref/forms/widgets/#django.forms.Select

Здесь написано, что я могу делать виджеты SELECT.Но как мне это сделать?Это не показывает пример того, как написать это поле в Python.

 <select>
   <option>option 1</option>
   <option>option 2</option>
 </select>

Ответы [ 4 ]

13 голосов
/ 25 января 2011
CHOICES= (
('ME', '1'),
('YOU', '2'),
('WE', '3'),
)
select = forms.CharField(widget=forms.Select(choices=CHOICES))
9 голосов
/ 01 сентября 2015

Решение errx было почти правильным в моем случае, сработало следующее (django v1.7x):

CHOICES= (
('1','ME'),
('2','YOU'),
('3','WE'),
)
select = forms.ChoiceField(widget=forms.Select, choices=CHOICES)

Элементы внутри CHOICES соответствуют ($ option_value, $ option_text).

9 голосов
/ 25 января 2011
class MyForm(forms.Form):
    CHOICES = (('Option 1', 'Option 1'),('Option 2', 'Option 2'),)
    field = forms.ChoiceField(choices=CHOICES)

print MyForm().as_p()

# out: <p><label for="id_field">Field:</label> <select name="field" id="id_field">\n<option value="Option 1">Option 1</option>\n<option value="Option 2">Option 2</option>\n</select></p>
1 голос
/ 21 апреля 2018

Джанго 2.0

Options = [
        ('1', 'Hello'),
        ('2', 'World'),
      ]
category = forms.ChoiceField(label='Category', widget=forms.Select, choices=sample)

Кстати, кортеж работает так же, как и список.

Options = (
        ('1', 'Hello'),
        ('2', 'World'),
     )
category = forms.ChoiceField(label='Category', widget=forms.Select, choices=sample)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...