выровнять набор питона - опции поля django optgroups - PullRequest
0 голосов
/ 18 ноября 2018

Я искал способ сгладить опции поля в django, который структурирован как вложенные кортежи optgroup:

CHOICES = (
  ('', (
        ('value1', 'label1'),
        ('value2', 'label2'),
      )
  ),
  ('Group2', (
        ('value3', 'label3'),
        ('value4', 'label4'),
     )
  ),
)

Чего я хочу добиться, так это списка, содержащего только значения ['value1', 'value2', 'value3', 'value4'].

Я пробовал itertools chain, zip и sum, но не могу избавиться от меток группировки, то есть пустой строки '' и 'Group2'. Есть идеи?

Спасибо

Ответы [ 2 ]

0 голосов
/ 18 ноября 2018

Для всех, кто заинтересован, подойдет следующее:

[tuple[0] for tuple in [field].get_flatchoices(False)]
0 голосов
/ 18 ноября 2018

Вы можете использовать понимание списка , чтобы сделать это:

[choice[0] for group in CHOICES for choice in group[1]] 
...