筛选序列化程序中的嵌套查询集



我有这些型号:

class Item(..):
....
class Folder(..):
...
class File(..):
item = ...
folder = ...
class FileSerializer(...):
class Meta:
model = File
class FolderSerializer(...):
files = FileSerializer(many=True,readonly=True)
class Meta:
model = Folder

当我调用FolderViewSetLIST请求时,它为每个Folder序列化了所有的Files。我需要使它只序列化成为特定Item的文件。

现在,我正在前端过滤Files,但这将在未来变得非常重要。

你知道怎么做吗?有没有内置的方法?

SerializerMethodField允许添加自定义查询来限制外键模型。
class FolderSerializer(...):
files = serializers.SerializerMethodField()
class Meta:
model = Folder
def get_files(self, instance):
files = File.objects.filter(folder=instance)
serializer = FileSerializer(instance=files, request=request, many=True, readonly=True)
return serializer.data

相关内容

  • 没有找到相关文章

最新更新