Ich möchte mit Simplejson ein Django-Modell serialisieren. Djangos Serializer unterstützt keine Wörterbücher ... und Simplejson unterstützt keine Django-Querysets. Das ist ein ziemliches Rätsel.JSON Serialisierung von Django-Modellen mit simplejson
Im Modell gibt es Sponsoren, die einen Fremdschlüssel zum Sponsorenlevel haben, ich versuche alle Sponsoren, die zu einem bestimmten Sponsorniveau gehören, zusammen zu gruppieren. Hier ist der Code, der die Liste erzeugt:
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]
Hier ist, was sponsor_dict
aussieht, wenn es
{
'Fan': [<Sponsor: Fan Sponsor>],
'VIP': [<Sponsor: VIP Sponsor>],
'Groupie': [<Sponsor: Groupie Sponsor>],
'Silver': [<Sponsor: Silver Sponsor>],
'Bronze': [<Sponsor: Another Bronze Sponsor>, <Sponsor: Bronze Sponsor>]
}
Ich habe nur einen Sponsor in jeder Ebene, mit Ausnahme von Bronze, nur um zu zeigen, wie es funktioniert. Alles, was ich tun möchte, ist "alles" in JSON zu bekommen, damit jQuery es leicht interpretieren kann. Können Djangos andere Serialisierer (wie XML oder YAML) dies erreichen? Kann ich den JSON-Serializer von Django "erweitern", um Wörterbücher zu behandeln, oder "erweitere" simplejson, um Django-QuerySet-Objekte zu behandeln?
zu verwenden, um dies sehr klug ist – babonk