Python 如何将选择动态传递到django表单中
如何在表单中动态设置选项?这些选择将根据用户选择的路线而改变 forms.pyPython 如何将选择动态传递到django表单中,python,django,Python,Django,如何在表单中动态设置选项?这些选择将根据用户选择的路线而改变 forms.py class RegistrationForm(forms.Form): options = () camp_dates = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=options) def camp_datailed
class RegistrationForm(forms.Form):
options = ()
camp_dates = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple,
choices=options)
def camp_datailed_view(request,slug):
options = (
("1", "Jan"),
("2", "Feb"),
)
form = RegistrationForm()
##How can I pass options into the form field camp_dates as selectable choices
def register(request):
form = RegistrationForm()
if request.method == 'POST':
# create a form instance and populate it with data from the request:
form = RegistrationForm(request.POST)
# check whether it's valid:
if (form.is_valid()):
return render(request,'camp_registration.html')
else:
print (form.errors)
return HttpResponse("not working")``
我想从我的view.py文件中设置选项,以便可以动态设置这些选项
视图.py
class RegistrationForm(forms.Form):
options = ()
camp_dates = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple,
choices=options)
def camp_datailed_view(request,slug):
options = (
("1", "Jan"),
("2", "Feb"),
)
form = RegistrationForm()
##How can I pass options into the form field camp_dates as selectable choices
def register(request):
form = RegistrationForm()
if request.method == 'POST':
# create a form instance and populate it with data from the request:
form = RegistrationForm(request.POST)
# check whether it's valid:
if (form.is_valid()):
return render(request,'camp_registration.html')
else:
print (form.errors)
return HttpResponse("not working")``
你能行
class RegistrationForm(forms.Form):
camp_dates = forms.MultipleChoiceField(
widget=forms.CheckboxSelectMultiple,
choices=()
)
def __init__(self, *args, **kwargs):
camp_dates_choices = kwargs.pop('camp_dates_choices', ())
super().__init__(*args, **kwargs)
self.fields['camp_dates'].choices = camp_dates_choices
form = RegistrationForm(camp_dates_choices=<DYNAMIC_VALUE>)
班级注册表(forms.Form):
camp_dates=forms.MultipleChoiceField(
widget=forms.CheckboxSelectMultiple,
选项=()
)
定义初始化(self,*args,**kwargs):
camp_dates_choices=kwargs.pop('camp_dates_choices',())
super()
self.fields['camp\u dates'].choices=camp\u dates\u choices
表格=注册表格(营地日期选择=)
在任何人提供帮助之前,需要提供更多信息。首先,您是否收到任何错误?您当前的状态是什么?此外,您是否将选项
dict导入forms.py
类似于from.views导入选项
,以便此方法可用表单验证抛出错误“选择有效选项”。1不是可用选项之一。您能说明如何传递选项吗?在呈现和验证时,您必须同时传递它们。我已将register函数添加到post中以向您显示验证。您没有将选项传递到表单。应该是form=RegistrationForm(camp\u-dates\u-choices=)
和postform=RegistrationForm(request.post,camp\u-dates\u-choices=)
值得注意的是,表单字段在请求之间共享,因此如果使用线程或异步,则需要使用新的多线程安全字段:self.fields['camp\u-dates']=forms.multipleechoicefield(widget=forms.CheckboxSelectMultiple,choices=camp\u dates\u choices)