【发布时间】:2013-07-15 08:35:21
【问题描述】:
我有一个 PageSerializer,它继承自我从文档 (http://django-rest-framework.org/api-guide/serializers.html#dynamically-modifiying-fields) 复制的 DynamicFieldsModelSerializer。为了从我的通用视图初始化序列化程序,我实现了get_serializer。对于我的详细视图(继承自 generics.RetrieveUpdateDestroyAPIView),这可以正常工作,但是当我尝试在列表视图(继承自 generics.RetrieveUpdateDestroyAPIView)中初始化我的 PageSerializer 时,我收到以下错误:
'PageList' should either include a 'serializer_class' attribute,
or use the 'model' attribute as a shortcut for automatically generating
a serializer class.
这是我的 get_serializer 实现(我在列表视图和详细视图中实现)
def get_serializer(self, instance=None, data=None, files=None, many=False, partial=False):
fields = None
if self.request.method == 'GET':
query_fields = self.request.QUERY_PARAMS.get("fields", None)
if query_fields:
fields = tuple(query_fields.split(','))
return PageSerializer(instance=instance, data=data, files=files, many=many, partial=partial, fields=fields)
从错误消息来看,get_serializer 似乎并没有被使用。对于列表视图,是否有不同的方法来实现这一点?我还没有找到任何关于如何使用 get_serializer 的提示。
【问题讨论】:
标签: django django-rest-framework