如何从django模型序列化程序中获取特定字段,该序列化程序在序列化程序的meta中返回所有字段(fields=';uuuuu alluuux27?
我有一个序列化程序:如何从django模型序列化程序中获取特定字段,该序列化程序在序列化程序的meta中返回所有字段(fields=';uuuuu alluuux27?,django,serialization,Django,Serialization,我有一个序列化程序: class UsrSerializer(serializers.ModelSerializer): class Meta: model = Usr fields = '__all__' 除了id、名字、姓氏和电子邮件之外,我不需要所有字段,也不想修改序列化程序,因为我需要其他地方的所有字段: org = Organization.objects.get(pk=org_id) members = org.user_set.all() serializer =
class UsrSerializer(serializers.ModelSerializer):
class Meta:
model = Usr
fields = '__all__'
除了id、名字、姓氏和电子邮件之外,我不需要所有字段,也不想修改序列化程序,因为我需要其他地方的所有字段:
org = Organization.objects.get(pk=org_id)
members = org.user_set.all()
serializer = UsrSerializer(members, many=True)
与Arrakkal Abu发布的文档部分一样,您可以使用
.fields.pop(field\u name)
从序列化程序实例中删除字段
我建议创建一个可重用类,如示例中所示,但如果只对一个实例执行此操作,则可以执行以下操作:
serializer = UsrSerializer(members, many=True)
wanted_fields = {'id', 'first_name', 'last_name', 'email'}
all_fields = set(serializer.fields)
for field in all_fields:
if field not in wanted_fields:
serializer.fields.pop(field)
因此,从
UsrSerializer
中,您只需要某些字段,但不想将其更改为仅包含这些字段?你要么需要有2个序列化程序,这样你就有了你想要的字段,要么就是在你不想要的时候不使用额外的字段?