【发布时间】:2017-03-03 16:13:11
【问题描述】:
我有可以与图像和位置相关联的标签。
- 标签是独一无二的。
- 图像和位置可以有很多标签。
- Tag_Item 模型用于将所有内容链接在一起。
以下是模型:
LOCATIONS = (
('US', 'USA'),
('UK', 'United Kingdom'),
('FR', 'France'),
)
class Location(models.Model):
location = models.CharField(choices=LOCATIONS)
class Image(models.Model):
image = models.ImageField(verbose_name='Image')
class Tag(models.Model):
tag = models.CharField(max_length=150, unique=True)
class Tag_Item(models.Model):
tag = models.ForeignKey(Tag, on_delete=models.CASCADE)
location = models.ForeignKey(Location, null=True, blank=True, default=None)
image = models.ForeignKey(Image, null=True, blank=True, default=None)
created_at = models.DateTimeField(auto_now_add=True)
我想写一个查询,意思是为美国选择五个最常见的标签。
我在 SQL 中考虑以下几行:
- 加入 Tag、Tag_Item 和 Location,其中 location 为“US”。
- 按标签分组。
- 按 Tag_ID 计数(或类似的东西)对其进行排序。
但我不知道如何在 Django ORM 中传输它。
你能帮我写出那种复杂的关系查询吗?
【问题讨论】:
-
嘿,@TomBrock 我想知道,你觉得我的回答有帮助吗?
标签: python django django-orm