J'aimerais utiliser simplejson pour sérialiser un modèle Django. Le sérialiseur de Django ne supporte pas les dictionnaires... et simplejson ne supporte pas les Django Querysets. C'est une véritable énigme.
Dans le modèle, il y a des sponsors qui ont une clé étrangère pour le niveau du sponsor, j'essaie de regrouper tous les sponsors qui appartiennent à un certain niveau de sponsor. Voici le code qui génère la liste :
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]
Voici ce que sponsor_dict
on dirait qu'une fois qu'il est "fait"
{
'Fan': [<Sponsor: Fan Sponsor>],
'VIP': [<Sponsor: VIP Sponsor>],
'Groupie': [<Sponsor: Groupie Sponsor>],
'Silver': [<Sponsor: Silver Sponsor>],
'Bronze': [<Sponsor: Another Bronze Sponsor>, <Sponsor: Bronze Sponsor>]
}
Je n'ai ajouté qu'un seul sponsor dans chaque niveau, sauf pour le bronze, juste pour montrer comment cela fonctionne. Tout ce que je veux faire, c'est convertir le tout en JSON pour que jQuery puisse l'interpréter facilement. Les autres sérialiseurs de Django (comme XML ou YAML) peuvent-ils accomplir cela ? Puis-je " étendre " le sérialiseur Django JSON pour gérer les dictionnaires ou " étendre " simplejson pour gérer les objets Django QuerySet ?