我的应用程序中有标签,并且可以标记不同的内容,例如新闻,事件... 新闻和事件与标签有ManyToMany关系。是否可以获取使用标签的每个对象?
我的模型(简称)如下:
标记模型
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()
答案 0 :(得分:0)
尝试
tag.news.all() | tag.event.all()
由于这里存在反向关系,因此可以访问“新闻”和“事件”,它们在各自的模型字段中用关键字“ related_name”定义。
请注意,这可能会产生重复的标签,因为这是两者之间的联合。
(tag.news.all() | tag.event.all()).distinct()