У меня есть форма в наборе форм, где я хотел бы отобразить несколько раскрывающихся меню в одном поле «тесты». Я достиг этого в форме единого выпадающего меню в тегах «optgroup» (см. Изображение ниже).
Полагаю, таким образом вы можете выбрать только одно значение.
Однако возможно ли «вложить» эти выпадающие списки? Т.е. у них есть все под одним полем «тесты», но можно иметь несколько выпадающих списков с «тегами» и выбирать результаты для каждого тега? Или мне нужно поле для каждого тега?
Мои формы.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.
Спасибо