@apheyhys

Как добавить свое поле в response Django REST?

Каким образом можно добавить свое поле в Django REST? Не в поле results, а к полям count, next, previous.
Хотел добавить поле подсчитывающее количество материалов с одинаковыми тегами. Чтение документации ничего не дало.
На форумах есть предложение переопределить класс paginator, может быть есть более элегантное решение?
{
    "count": 2,
    "next": null,
    "previous": null,
    "results": [
        {

            "id": 1,
            "slug": "one",
            "publications_date": "2019-03-19T13:49:58Z",
            "tag": "birds"
        },
        {
            "id": 2,
            "slug": "two",
            "publications_date": "2019-03-20T09:49:48Z",
            "tag": "fish"
        },
        {
            "id": 3,
            "slug": "three",
            "publications_date": "2019-03-20T09:49:48Z",
            "tag": "birds"
        }
    ]
}
  • Вопрос задан
  • 251 просмотр
Решения вопроса 1
alternativshik
@alternativshik
Можно переопределить list. Не знаю, какие там у вас вьюхи, но для ListModelMixin или GenericView это как-то так
def list(self, request, *args, **kwargs):
        response = super().list(request, args, kwargs)
        response.data['tag1'] = 10 
        response.data['tag2'] = 30
        response.data['tag3'] = 45
        return response
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы