Предполагается, что CHOICES
- это набор опций для поля, изменение относительно простое:
class PlaylistsForm(forms.Form):
choices=forms.ChoiceField(widget=forms.RadioSelect(),
choices=CHOICES,
label="choices")
Подробнее см. документацию ChoiceField
и документацию choices
.
Изменения опубликовать ваше редактирование:
Краткий ответ
Вы, вероятно, путаете свое поле с именем choices
и атрибут choices
в своем поле choices
.
Скажем, у вас есть форма:
my_form = PlaylistsForm()
Вы можете получить доступ к атрибуту choices
поля choices
следующим образом:
my_form.fields['choices'].choices
Длинный ответ
Я не знал, как делать то, что вы хотели, поэтому я вставил import pdb; pdb.set_trace()
сразу после того, как объявил форму, например:
form = PlaylistsForm()
import pdb; pdb.set_trace()
Затем, используя сервер разработки, я открыл URL, который сопоставлялся с представлением с моим новым import pdb; pdb.set_trace()
в нем. Переключившись в командную строку, я мог проверить, какие атрибуты и методы существовали в моем объекте формы, в приглашении отладки:
(Pdb) dir(form)
Это показало, что у form
есть атрибут fields
, поэтому я посмотрел на него:
(Pdb) form.fields
Это показало, что form.fields
это dict
, со значениями Field
объектов, я выбрал поле choices
и посмотрел, какие атрибуты у него были:
(Pdb) dir(form.fields['choices'])
Это показало мне, что form.fields['choices']
имеет атрибут choices
:
(Pdb) form.fields['chiices'].choices
[('', '---------'), (1L, My Playlist')]
Это, вероятно, то, что вы ищете.