Формат JSON от сериализатора Django
Я использую сериализатор Django для JSON
.
Использую документацию здесь. https://docs.djangoproject.com/en/5.0/topics/serialization/
Почему сериализатор выдает беспорядочный вывод? Документация не предлагает никакого решения. Как я могу получить чистый, хорошо отформатированный JSON без pk и model?
View
from django.http import HttpResponse, JsonResponse
from django.core import serializers
@csrf_protect
def cityLookup(request, **kwargs):
country = kwargs.get('Country')
city = kwargs.get('Place')
queryset = GeoNames_location.objects.filter(geoCountry_code=country, feature_class='P', geoAsciiName__istartswith=city).order_by('-geo_population')[:5]
data = serializers.serialize("json", queryset, fields=["geoAsciiName", "geoLongitude", "geoLatitude", "geo_timezone", "geo_population", "geoCountry_code"])
return JsonResponse(data, safe=False) # Need security check
Ответ
"[{\"model\": \"ui.geonames_location\", \"pk\": 5128581, \"fields\": {\"geoAsciiName\": \"New York City\", \"geoLatitude\": \"40.714270\", \"geoLongitude\": \"-74.005970\", \"geoCountry_code\": \"US\", \"geo_population\": 8804190, \"geo_timezone\": \"America/New_York\"}}, {\"model\": \"ui.geonames_location\", \"pk\": 4645421, \"fields\": {\"geoAsciiName\": \"New South Memphis\", \"geoLatitude\": \"35.086760\", \"geoLongitude\": \"-90.056760\", \"geoCountry_code\": \"US\", \"geo_population\": 641608, \"geo_timezone\": \"America/Chicago\"}}, {\"model\": \"ui.geonames_location\", \"pk\": 4335045, \"fields\": {\"geoAsciiName\": \"New Orleans\", \"geoLatitude\": \"29.954650\", \"geoLongitude\": \"-90.075070\", \"geoCountry_code\": \"US\", \"geo_population\": 389617, \"geo_timezone\": \"America/Chicago\"}}, {\"model\": \"ui.geonames_location\", \"pk\": 5101798, \"fields\": {\"geoAsciiName\": \"Newark\", \"geoLatitude\": \"40.735660\", \"geoLongitude\": \"-74.172370\", \"geoCountry_code\": \"US\", \"geo_population\": 281944, \"geo_timezone\": \"America/New_York\"}}, {\"model\": \"ui.geonames_location\", \"pk\": 4776024, \"fields\": {\"geoAsciiName\": \"Newport News\", \"geoLatitude\": \"36.980380\", \"geoLongitude\": \"-76.429750\", \"geoCountry_code\": \"US\", \"geo_population\": 182385, \"geo_timezone\": \"America/New_York\"}}]"