Я выполняю пользовательский запрос через сериализатор в Django, чтобы я мог использовать данные во внешнем интерфейсе. Однако сериализатор возвращает полные объекты или записи из базы данных. Как я могу вернуть только те поля, которые я хочу вернуть, как указано в моем запросе?
views.py
from .models import Property
from .serializers import PropertySerializer
from rest_framework import generics
from django.views.generic.list import ListView
from rest_framework.response import Response
from rest_framework.decorators import api_view
from rest_framework import status
# class PropertyListCreate(generics.GenericAPIView):
@api_view(['GET', 'POST'])
def propertyListCreate(request):
if request.method == 'GET':
properties = []
# properties = Property.objects.all()
properties = Property.objects.raw("SELECT id as 'id', suburb, COUNT(*) FROM properties_property group by suburb")
serializer = PropertySerializer(properties,context={'request': request} ,many=True, read_only=True)
return Response({'data': serializer.data})
models.py
from django.db import models
class Property(models.Model):
Title = models.CharField(max_length=255)
Price = models.IntegerField()
Area = models.FloatField()
Bedrooms = models.FloatField()
Bathrooms = models.FloatField()
Parking = models.FloatField()
Suburb = models.CharField(max_length=255)
Address = models.CharField(max_length=255)
Link = models.CharField(max_length=255)
Date = models.CharField(max_length=255)
serializers.py
from rest_framework import serializers
from .models import Property
class PropertySerializer(serializers.ModelSerializer):
class Meta:
model = Property
fields = ('id', 'Title', 'Price', 'Area', 'Bedrooms', 'Bathrooms', 'Parking', 'Suburb', 'Address', 'Link', 'Date')
Вывод, который я получаю:
Желаемый вывод будет следующим: