Django 如何JSON序列化包含文件的对象?
我想从我的DRF后端检索Django 如何JSON序列化包含文件的对象?,django,django-rest-framework,Django,Django Rest Framework,我想从我的DRF后端检索Story以及相关的Story\u媒体故事\媒体包含数据和文件,以列表形式提供。这意味着一个故事可以有多个故事媒体对象(故事在故事媒体中是FK) 但是,当我想返回Story\u Media对象的litst时,它们似乎是不可序列化的。所以我的问题是,如何对包含文件的对象进行JSON序列化 TypeError:类型为Story_Media的对象不可JSON序列化 您需要为Story\u Media创建序列化程序,使用many=True将查询集的对象传递给它,并返回序列化程序数
Story
以及相关的Story\u媒体<代码>故事\媒体
包含数据和文件,以列表形式提供。这意味着一个故事
可以有多个故事媒体
对象(故事
在故事媒体
中是FK)
但是,当我想返回Story\u Media
对象的litst时,它们似乎是不可序列化的。所以我的问题是,如何对包含文件的对象进行JSON序列化
TypeError:类型为Story_Media的对象不可JSON序列化
您需要为
Story\u Media
创建序列化程序,使用many=True
将查询集的对象传递给它,并返回序列化程序数据
例如:
def get_story_media(self, story):
qs = Story_Media.objects.filter(story=story.id)
serializer = StoryMediaSerializer(qs, many=True)
return serializer.data
您需要为
Story\u Media
创建序列化程序,使用many=True
将查询集的对象传递给它,并返回序列化程序数据
例如:
def get_story_media(self, story):
qs = Story_Media.objects.filter(story=story.id)
serializer = StoryMediaSerializer(qs, many=True)
return serializer.data
注意:带有
SerializerMethodField
的字段的默认命名为“get\uz”,因此您不必向其传递名称,除非您想添加其他名称谢谢您的回答,我将在明天检查它!注意:带有SerializerMethodField
的字段的默认命名为“get\uz”,因此您不必向其传递名称,除非您想添加其他名称谢谢您的回答,我将在明天检查它!