如何动态设置rest_framework(drf)序列化器字段?
class XxxSerializer(serializers.ModelSerializer):
class Meta:
model = models.Xxx
fields = [
name,
age,
department,
address,
email,
]
def to_representation(self, instance):
'''动态设置序列化器字段'''
data = super().to_representation(instance)
fields = self.context['request'].GET.get('fields').split(',')
if not fields:
return data
diff_fields = set(data.keys()) - set(fields)
for field in diff_fields:
data.pop(field)
return data
在GET请求中,传递fields参数为需要的字段即可,如:...?fields=name,age,department

浙公网安备 33010602011771号