我有一个例子
[
{
"url": "/api/post/12/",
"user": "/api/users/1/",
"created": "2013-08-06T04:52:28Z",
"updated": "2013-08-06T04:52:28Z",
"date": "2013-08-06T04:52:28Z",
"show": true,
"title": "test post",
"body": null,
"role": "Text",
"image_url": "",
"image": ""
},
{
"url": "/api/post/13/",
"user": "/api/users/1/",
"created": "2013-08-06T04:53:19Z",
"updated": "2013-08-06T04:53:19Z",
"date": "2013-08-06T04:53:19Z",
"show": true,
"title": "test post",
"body": null,
"role": "Image",
"image_url": "http://127.0.0.1:8000/media/photos/photo_1.jpg",
"image": "photos/photo_1.jpg"
}
]
我希望我的HyperlinkedModelSerializer
班级不显示image_url和image(如果它是Text角色)。
这可能吗?
您可以to_native
在序列化器子类中重写以删除您的情况下不需要的字段。
就像是:
def to_native(self, obj):
as_native = super(MySerializer, self).to_native(obj)
# Remove image_url and image fields if Text role.
if as_native["role"] == "Text":
as_native.pop('image_url', None)
as_native.pop('image', None)
return as_native
希望对您有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句