/ / Як серіалізувати у форматі json queryset, який використовує оператор 'extra' у Django? - django, django-model

Як серіалізувати у json формат queryset, який використовує "додаткові" висловлювання в Django? - джанго, джанго-моделі

Я хочу серіалізувати QuerySet, який містить додатково заява:

region_list = Region.objects.extra(select={ "selected": "case when id = %s then 1 else 0 end" % (new_region.id)}).all()

Я використовую формуляр нижче для серіалізації

return HttpResponse(serializers.serialize("json", region_list), mimetype="application/json")

Але коли я отримую результати json в браузері, з'являються лише поля моделі Region вибрано поле зникає.

Як це можна виправити?

Відповіді:

0 для відповіді № 1

Один трохи longwinded рішення було б, щоб скинути об'єкти в JSON через django-pistonкласу JSONEmitter. Коли ви реєструєте вашу модель регіону з поршнем, ви можете сказати, які поля слід включити, і згадати там "вибрані", а потім скористатися вашою анотацією, щоб переконатися, що queryset, що використовується в поршневому обробнику, містить всю потрібну інформацію.

Або просто подивіться, як це робиться поршнем, і, якщо ви не хочете, щоб все поршневе, просто імітуйте біти.