Вопрос к знатокам Django REST framework.
Помогите, пожалуйста, понять каким образом можно сделать "фильтрацию" внутри Serializer.
Для наглядности создал тестовый проект
https://github.com/drf-152/drf04
У меня есть view:
class AAAAFeedView(ListAPIView):
permission_classes = (permissions.AllowAny, )
queryset = AAAA.objects.all()
serializer_class = AAAASerializer
И serializers:
class CCCCSerializer(serializers.ModelSerializer):
class Meta:
model = CCCC
fields = ('id', 'name', 'show_me')
class BBBBCCCCSerializer(serializers.ModelSerializer):
bb_ccs = CCCCSerializer(many=True)
class Meta:
model = BBBB
fields = ('id', 'name', 'bb_ccs')
class AAAASerializer(serializers.ModelSerializer):
bbs = BBBBCCCCSerializer(many=True)
class Meta:
model = AAAA
fields = ('id', 'name', 'bbs')
При запросе:
curl -H 'Accept: application/json; indent=4' http://127.0.0.1:8000/api/v1/feed/
Получаю в ответ:
[
{
"id": 1,
"name": "aa01",
"bbs": [
{
"id": 1,
"name": "bb01",
"bb_ccs": [
{
"id": 1,
"name": "cc01",
"show_me": false
},
{
"id": 2,
"name": "cc02",
"show_me": true
},
{
"id": 3,
"name": "cc03",
"show_me": false
},
{
"id": 4,
"name": "cc04",
"show_me": true
}
]
}
]
},
{
"id": 2,
"name": "aa02",
"bbs": [
{
"id": 2,
"name": "bb02",
"bb_ccs": []
}
]
}
]
Есть необходимость для поля "bb_ccs" (внутри "bbs") показывать
ТОЛЬКО объекты с условием "show_me": true.
Каким образом можно добиться желаемого результата?
Заранее спасибо за помощь.
P.S. Разместил этот вопрос на нескольких ресурсах.