在Django Rest Framework中动态修改序列化器字段

在Django Rest Framework中动态修改序列化器字段,第1张

概述我正在尝试使用django rest框架文档中描述的高级序列化程序用法. http://django-rest-framework.org/api-guide/serializers.html#advanced-serializer-usage动态修改序列化器字段这是我的序列化程序类:class MovieSerializer(serializers.Mod

我正在尝试使用django rest框架文档中描述的高级序列化程序用法. http://django-rest-framework.org/api-guide/serializers.html#advanced-serializer-usage动态修改序列化器字段

这是我的序列化程序类:

class MovIESerializer(serializers.ModelSerializer):    movIEwork_work = MovIEWorkSerializer(many=True)     def __init__(self,*args,**kwargs):        # Don't pass the 'fIElds' arg up to the superclass        dropfIElds = kwargs.pop('dropfIElds',None)        # Instantiate the superclass normally        super(MovIESerializer,self).__init__(*args,**kwargs)        if dropfIElds:            # Drop fIElds specifIEd in the `fIElds` argument.            banished = set(dropfIElds)            for fIEld_name in banished:                self.fIElds.pop(fIEld_name)    class Meta:        model = MovIE        fIElds = ('fIEld1','fIEld2','movIEwork_work')

这是我的观点

class MovIEFromInterpreterVIEwSet(vIEwsets.ModelVIEwSet):    queryset = MovIE.objects.all()    serializer_class = MovIESerializer(dropfIElds=('movIEwork_work',))

我收到此错误:

TypeError: 'MovIESerializer' object is not callable
最佳答案请注意,您将serializer_class设置为不是类,而是设置为类的实例.您需要将dropfIElds设置为类的属性(就像它链接到的文档示例中的字段一样),或者您需要查看覆盖视图集的get_serializer方法(docs). 总结

以上是内存溢出为你收集整理的在Django Rest Framework中动态修改序列化器字段全部内容,希望文章能够帮你解决在Django Rest Framework中动态修改序列化器字段所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1205325.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存