Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从django模型序列化程序中获取特定字段,该序列化程序在序列化程序的meta中返回所有字段(fields=';uuuuu all&#uuux27?_Django_Serialization - Fatal编程技术网

如何从django模型序列化程序中获取特定字段,该序列化程序在序列化程序的meta中返回所有字段(fields=';uuuuu all&#uuux27?

如何从django模型序列化程序中获取特定字段,该序列化程序在序列化程序的meta中返回所有字段(fields=';uuuuu all&#uuux27?,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个序列化程序,这样你就有了你想要的字段,要么就是在你不想要的时候不使用额外的字段?