我有以下模型,它们与Django的内置模型length lst - 1
和Tag
相关。给定Site
,查询所有相关Site
的最有效方法是什么
Tag
我目前正在这样做,这似乎太复杂了:
class InlineTag(models.Model):
tag = models.ForeignKey(Tag, null=False)
topic = models.ForeignKey(Topic, null=False)
order = models.PositiveIntegerField(null=False, blank=True)
class Topic(models.Model):
description = models.CharField(max_length=255, blank=False)
sites = models.ManyToManyField(Site)
答案 0 :(得分:1)
您可以使用reverse foreign key lookups在一个查询中获取所有标签:
tags = Tag.objects.filter(inlinetag__topic__sites=current_site).distinct()
distinct()
确保您不会得到重复的结果,例如,如果一个站点有多个共享相同标签的主题。
请注意,Django没有内置的Tag
模型-大概是为此您使用了第三方应用程序。