Chcę serializować zestaw kwerend, który zawiera dodatkowy komunikat:
region_list = Region.objects.extra(select={ "selected": "case when id = %s then 1 else 0 end" % (new_region.id)}).all()
Używam poniższego oświadczenia do serializowania
return HttpResponse(serializers.serialize("json", region_list), mimetype="application/json")
Ale gdy uzyskaję wyniki json w przeglądarce, pojawiają się tylko pola modelu Region, wybrany pole zniknęło.
Jak mogę to naprawić?
Odpowiedzi:
0 dla odpowiedzi № 1Jeden nieco długowiecznym rozwiązaniem byłoby zrzucenie obiektów do JSON-a przez django-tłok"s klasa JSONEmitter. Po zarejestrowaniu modelu regionu za pomocą tłoka można określić, które pola mają zostać uwzględnione, i wspomnieć o "zaznaczonym" tam, a następnie użyć adnotacji, aby upewnić się, że zestaw zapytań używany w obsłudze tłoków zawiera wszystkie potrzebne informacje.
Albo po prostu spójrz, jak to robi tłok, a jeśli nie chcesz całego tłoku, po prostu naśladuj bity, które robisz.