使用Django Rest Framework序列化包含多个相关模型的数据的更好方法

1dkrff03  于 2023-03-31  发布在  Go
关注(0)|答案(1)|浏览(98)

背景

我是Django和DRF的新手,目前正在编写一个处理GET请求的视图。该视图将返回一个JSON,其中包含与5个相关模型相关的数据。这是我的数据库

的可视化。这是我希望得到的

[
    {
        "word": "hello",
        "entries": [
            {
                "tag": null,
                "link": "",
                "value": "TEST"
            },
            {
                "tag": null,
                "link": "",
                "value": "STUFF"
            }
        ]
    },
    {
        "word": "Hello",
        "entries": []
    }
]

问题

我目前的方法是使用Django查询来构造一个自定义对象,然后定义一个DRF序列化器来序列化它。
x一个一个一个一个x一个一个二个x

代码工作正常,但代码看起来很傻,包含一个嵌套循环和两个额外的类。因此,我想知道是否有更好的方法来解决这个问题。

另外,经过一些研究,我注意到DRF官方网站记录了serializer relation。但似乎我必须为每个模型实现一个序列化器,并完全基于序列化构建响应数据,而不使用Django Query。
它非常赞赏告诉哪种方式更像行业标准,甚至更好的方法。

htrmnn0y

htrmnn0y1#

def get(self, request, format=None):
    # get current user
    #currentUser = User.objects.get(id=request.user.id)

    records = Record.objects.filter(user=self.request.user)

另外,在序列化器中使用to_represantation方法。

相关问题