【发布时间】:2011-01-16 00:39:07
【问题描述】:
我想使用 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 对象吗?
【问题讨论】:
标签: django json serialization django-queryset