Serializer 序列化 -----视图层传入一个变量到序列化器的方法
from rest_framework import serializers
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = ['field1', 'field2']
def to_representation(self, instance):
# 从context中获取额外的参数
extra_param = self.context.get('extra_param')
# 使用extra_param进行额外的处理
# ...
# 调用父类的to_representation方法
data = super().to_representation(instance)
# 根据需要,可以使用extra_param修改data
# ...
return data
# 在视图中使用序列化器时传入context
def my_view(request):
queryset = MyModel.objects.all()
serializer = MyModelSerializer(queryset, many=True, context={'extra_param': 'some_value'})
return Response(serializer.data)