我想使用 simplejson 序列化 Django 模型。Django 的序列化程序不支持字典……而 simplejson 不支持 Django 查询集。这是一个相当大的难题。
在模型中,赞助商有一个外键到赞助商级别,我试图将属于某个赞助商级别的所有赞助商分组在一起。这是生成列表的代码:
from django.shortcuts import get_list_or_404
from special_event.models import Sponsor, SponsorLevel
sponsor_dict = {}
roadie_sponsors = get_list_or_404(Sponsor, level__category = SponsorLevel.ROADIE_CHOICE)
for item in roadie_sponsors:
try:
sponsor_dict[item.level.name].append(item)
except KeyError:
sponsor_dict[item.level.name] = [item]
这是sponsor_dict
“制造”后的样子
{
'Fan': [<Sponsor: Fan Sponsor>],
'VIP': [<Sponsor: VIP Sponsor>],
'Groupie': [<Sponsor: Groupie Sponsor>],
'Silver': [<Sponsor: Silver Sponsor>],
'Bronze': [<Sponsor: Another Bronze Sponsor>, <Sponsor: Bronze Sponsor>]
}
我只在每个级别添加了一个赞助商,除了铜牌,只是为了展示它是如何运作的。我想做的就是将它“全部”转换为 JSON,以便 jQuery 可以轻松地解释它。Django 的其他序列化程序(如 XML 或 YAML)可以做到这一点吗?我可以“扩展”Django JSON Serializer 来处理字典或“扩展”simplejson 来处理 Django QuerySet 对象吗?