首页 |  我的博客 |  查看该博主内容分类 | 

如何动态设置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

posted @ 2023-10-16 15:57  Z哎呀  阅读(57)  评论(0)    收藏  举报