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>]
}
どのように機能するかを示すために、ブロンズを除いて、各レベルに 1 つのスポンサーのみを追加しました。私がやりたいのは、「すべて」をJSONに変換して、jQueryが簡単に解釈できるようにすることだけです。Django の他のシリアライザー (XML や YAML など) でこれを実現できますか? Django JSON Serializer を「拡張」して辞書を処理したり、simplejson を「拡張」して Django QuerySet オブジェクトを処理したりできますか?