Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将选择动态传递到django表单中_Python_Django - Fatal编程技术网

Python 如何将选择动态传递到django表单中

Python 如何将选择动态传递到django表单中,python,django,Python,Django,如何在表单中动态设置选项?这些选择将根据用户选择的路线而改变 forms.py class RegistrationForm(forms.Form): options = () camp_dates = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=options) def camp_datailed

如何在表单中动态设置选项?这些选择将根据用户选择的路线而改变

forms.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")``
我想从我的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=)
和post
form=RegistrationForm(request.post,camp\u-dates\u-choices=)
值得注意的是,表单字段在请求之间共享,因此如果使用线程或异步,则需要使用新的多线程安全字段:
self.fields['camp\u-dates']=forms.multipleechoicefield(widget=forms.CheckboxSelectMultiple,choices=camp\u dates\u choices)