2014-12-19 2 views
0

Имея такой выбор Джанго:Как справиться с выбором django?

MEDIA_CHOICES = (
    ('Audio', (
     ('vinyl', 'Vinyl'), 
     ('cd', 'CD'), 
    ) 
    ), 
    ('Video', (
     ('vhs', 'VHS Tape'), 
     ('dvd', 'DVD'), 
    ) 
    ), 
    ('unknown', 'Unknown'), 
) 

Как получить доступ к подгруппе категории (например, получить аудио выбор)? Как я могу перебирать множество ?, и как я могу напрямую получить листовой узел, такой как Vinyl?

ответ

1

Встроенный тип dict может быть построен из списка кортежей.

>>> MEDIA_CHOICES_D = dict(MEDIA_CHOICES) 
>>> MEDIA_CHOICES_D.keys() 
['unknown', 'Audio', 'Video'] 
>>> audio = MEDIA_CHOICES_D['Audio'] 
>>> audio 
(('vinyl', 'Vinyl'), ('cd', 'CD')) 
>>> audio_d = dict(audio) 
>>> audio_d['vinyl'] 
'Vinyl' 
>>> for k, v in audio_d.iteritems(): print '%s -> %s' % (k, v) 
... 
vinyl -> Vinyl 
cd -> CD 
>>>