我有一个表单集中的表单,我想在一个字段“测试”下显示多个下拉菜单。我已经通过在“ optgroup”标签中拥有一个下拉菜单的形式实现了这一点(请参见下图)。
我猜这样,您只能选择一个值。
但是,是否有可能“嵌套”这些下拉菜单?也就是说,它们都在一个字段“测试”下,但能够通过“标签”包含多个下拉列表并为每个标签选择结果?还是每个“标签”都需要一个字段?
我的forms.py:
class ReportForm(forms.ModelForm):
summary = forms.CharField(
widget=forms.Textarea(attrs={'rows':3, 'cols':70}),
label='',
required=False)
tests = forms.CharField(widget=forms.HiddenInput())
class Meta:
model = ClinicallyReportedSample
fields = ('id', 'summary', 'tests', 'hilis_reported')
def __init__(self, *args, **kwargs):
json_data = kwargs.pop('json_data', None)
super(ReportForm, self).__init__(*args, **kwargs)
crs_obj = self.instance
for j in json_data:
if j['lab_no'] == str(crs_obj):
json = j
summary = json['summary']
self.fields['summary'].initial = summary
self.fields['reported'].label = crs_obj
tests = json.get('tests', None)
if tests:
test_choices = (
('mutated', 'mutated'),
('mutated - see comments', 'mutated - see comments'),
('awaiting confirmation', 'awaiting confirmation'),
)
self.fields['tests'] = forms.ChoiceField(
required=True,
label='Current or repeat samples?',
choices=((k, test_choices) for k in tests),
)
我现在得到的是:
相反,我希望每个基因都有一个下拉列表以及这些选择。我需要为每个基因建立一个领域吗?我这样做的问题是每个结果都可以有0-10个基因,而在HTML表格中呈现这将非常困难。
谢谢
答案 0 :(得分:0)
您可能想要实现某种模板/客户端来处理,例如Chosen或Selectize.js(请参阅选项组示例)。
然后,如果需要以所需格式获取所选数据,则在表单类上实现clean
和/或clean_[field_name]
方法。