Я застрял на некоторое время, пытаясь установить динамические CHIOCES в выборе формы с помощью Python 2.7. Мне нужно, чтобы ВЫБОРЫ исходили из запроса в моем def update_file_choices
. Вот код в views.py:
FILES_UPLOADED=[] ##choices varible for template
def update_file_choices(): ##setup choices for RoomForm in launch page
global FILES_UPLOADED
uploads = FileUpload.objects.all()
for file in uploads:
FILES_UPLOADED.append((file.title,file.title))
print 'FILES IN UPLOADS:', file
return(FILES_UPLOADED)
1. Формы из следующего класса работают, за исключением того, что они не показывают названия новых файлов, загруженных в этом сеансе.
class RoomForm(forms.Form): ##for launch template
FILES_UPLOADED = update_file_choices()
titles = forms.ChoiceField(choices=FILES_UPLOADED)
2. Поэтому я перешел на эту версию, вызвав базовый класс, но теперь форма настраивается без каких-либо переменных данных.
class RoomForm(forms.Form):
def __init__(self, *args):
forms.Form.__init__(self, RoomForm)
FILES_UPLOADED = update_file_choices()
titles = forms.ChoiceField(choices=FILES_UPLOADED)
3. Это было той же проблемой:
class RoomForm(forms.Form):
def __init__(self, *args, **kwargs):
super(RoomForm, self).__init__(*args, **kwargs)
FILES_UPLOADED = update_file_choices()
titles = forms.ChoiceField(choices=FILES_UPLOADED)
Любые предложения будут высоко оценены.