Я хочу сгруппировать данные на основе параметра запроса, отправленного в URL.Я использую djanogo остальные рамки для реализации REST API.Например,
, если ниже URL отправлено на сервер
http://example.com/query?groupby=age
, тогда я хочу сгруппировать всех людей по возрасту, например, образец данных ниже
[
{
"groupby": 20,
"person": "Jhon",
"email": "n@g.com",
"phone": "100",
"companies": [
{
"company1": "address1"
},
{
"company1": "address2"
}
]
},
{
"groupby": 30,
"person": "Jhon",
"email": "n@g.com",
"phone": "100",
"companies": [
{
"company1": "address1"
},
{
"company1": "address2"
}
]
}
]
Моя модель и набор представлений показаны ниже
class ListFilter(Filter):
def filter(self, qs, value):
value_list = value.split(u',')
return super(ListFilter, self).filter(qs, Lookup(value_list, 'in'))
class SqureFeetFilter(Filter):
def filter(self, qs, value):
value_list = value.split(u',')
return super(SqureFeetFilter, self).filter(qs, Lookup(value_list, 'range'))
class ProfileFiltter(django_filters.FilterSet):
person = ListFilter(name='person')
sf = SqureFeetFilter(name='age',lookup_expr='range')
class Meta:
model = Profile
fields = [ 'person','age','email','phone','companies']
class ProfileSearchVieset(viewsets.ModelViewSet):
queryset = Profile.objects.all()
serializer_class = ProfileSerializer
permission_classes = [IsAuthenticated]
filter_backends = (DjangoFilterBackend,)
filter_class =ProfileFiltter
Пожалуйста, объясните мне, как можно группировать данные на основе параметра запроса и сериализовать их в формат json.