我正在尝试使用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中动态修改序列化器字段所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)