gpt4 book ai didi

python - 有没有办法获取DRF中所有ManyToMany相关的对象

转载 作者:太空宇宙 更新时间:2023-11-03 20:59:14 24 4
gpt4 key购买 nike

我的应用程序中有标签,可以标记不同的内容,例如新闻、事件......新闻和事件与标签具有多对多关系。是否可以获取使用该标签的每个对象?

我的模型(缩短)如下所示:

标签模型

class Tag(models.Model):
title = models.CharField(max_length=35)

新闻模型

class News(models.Model):
title = models.CharField(max_length=75)
tag = models.ManyToManyField(Tag, related_name="news")

事件模型

class Event(models.Model):
title = models.CharField(max_length=75)
tag = models.ManyToManyField(Tag, related_name="event")

我知道我可以获得所有具有指定标签的新闻

tag = self.get_object()
tag.news.all()

但是是否有可能在没有 10 个请求的情况下获取所有新闻、事件?我正在寻找类似 tag.all.all()

的内容

最佳答案

试试这个

tag.news.all() | tag.event.all()

由于此处的反向关系,可以访问“新闻”和“事件”,这些关系是在各自的模型字段中使用关键字“related_name”定义的。

请注意,这可能会产生重复的标签,因为它是两者之间的联合。对于不同的标签,

(tag.news.all() | tag.event.all()).distinct()

关于python - 有没有办法获取DRF中所有ManyToMany相关的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55810475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com