Django 如何JSON序列化包含文件的对象?

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将查询集的对象传递给它,并返回序列化程序数

我想从我的DRF后端检索
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”,因此您不必向其传递名称,除非您想添加其他名称谢谢您的回答,我将在明天检查它!