2016-04-10 2 views
4

мне нужно преобразовать модель Choices кортеж, как этот из документации Django:Преобразование выбор Django модели полей в формате JSON

YEAR_IN_SCHOOL_CHOICES = (
('FR', 'Freshman'), 
('SO', 'Sophomore'), 
('JR', 'Junior'), 
('SR', 'Senior'), 
) 

в объект JSON как это:

[{"id": 'FR', "year": 'Freshman'}, 
{"id": 'SO', "year": 'Sophomore'}, 
{"id": 'JR', "year": 'Junior'}, 
{"id": 'SR', "year": 'Senior'}] 

Это довольно простое преобразование и очень распространено при использовании форм, но я не смог найти какую-либо автоматическую функцию в Django, которая работает в режиме «вне коробки». Я думаю, что здесь что-то не хватает.

ответ

3

Для того, чтобы получить его в формате, который вы хотите, вы должны сделать список понимание:

[{'id': year[0], 'year': year[1]} for year in YEAR_IN_SCHOOL_CHOICES] 

можно альтернативно использовать dict(YEAR_IN_SCHOOL_CHOICES) как «встроенный» способ сделать это, но он будет иметь:

{'SR': 'Senior', 'FR': 'Freshman', 'SO': 'Sophomore', 'JR': 'Junior'} 
Смежные вопросы