foo1、foo2、foo3、foo4 などと言うオブジェクトがいくつかあります。
これらの foo オブジェクトのいずれかを選択できるフォームを作成したいと考えています。これにはいくつかの方法があります。
1)
class FooReportForm(forms.Form):
foo = forms.CheckboxInput()
def __init__(self,*args,**kwargs):
foos= kwargs.get('foos')
foo_choice = []
for foo in foos:
index = (foo.id,foo.name +" Area"+foo.area+" Region"+foo.region )
foo_choice.append(index)
super( PropertyReportForm, self).__init__(*args, **kwargs)
self.fields['foo'].choices = foo_choice`
2) `
class FooForm(forms.Form):
def __init__(self, *args, **kwargs):
foos= kwargs.pop('foos')
super(FooForm, self).__init__(*args, **kwargs)
choices = []
if foos:
pass
else:
foos = []
for i,fooin enumerate(foos):
index = [(foo.id , foo)]
choices = index
self.fields['foo_%s'% i] = forms.MultipleChoiceField(choices=choices,widget =forms.CheckboxSelectMultiple,required = False)
最初のアプローチでは、最初にいくつかのオプションをオンまたはオフにすることができません。このアプローチでこれを行うにはどうすればよいですか?2 つ目は、選択ごとに新しいフィールドを作成するため、間違っています。これを行う最善の方法は何ですか?