Использование полей DRF FlexFields в дополнительных действиях
Я хочу использовать flexfields в viewset extra action
serializers.py
class FarmSerializer(FlexFieldsModelSerializer):
class Meta:
model = Farm
fields = [
'id',
...
'varieties',
'conditions',
'created_at',
'updated_at',
'created_by'
]
expandable_fields = {
'varieties': ('labels.serializers.VarietySerializer', {'many': True}),
'conditions': ('labels.serializers.ConditionSerializer', {'many': True}),
}
views.py
class GrowerViewSet(BaseViewSet):
...
serializer_class = GrowerSerializer
@action(detail=True, methods=['GET'])
def farms(self, request, pk=None):
...
serializer = FarmSerializer(queryset, many=True)
return Response(serializer.data)
Затем, когда я запрашиваю http://localhost:5000/api/labels/grower/3/farms/?expand=varieties,conditions
flexfield expand params не работает:
Необходимо добавить контекст запроса в Serializer
@action(detail=True, methods=['GET'])
def farms(self, request, pk=None):
queryset = Farm.objects.filter(grower_id=pk)
serializer = FarmSerializer(queryset, many=True, context={"request": request})
return Response(serializer.data)