我的应用程序中有标签,可以为新闻,事件等不同的事物添加标签。
新闻和事件与标签有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()
的东西 最佳答案
尝试这个
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/