Django остальные рамки groupby подали и сериализовать в JSON - PullRequest
0 голосов
/ 28 мая 2019

Я хочу сгруппировать данные на основе параметра запроса, отправленного в 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...