【问题标题】:Further group objects in a many to many relation在多对多关系中进一步分组对象
【发布时间】:2012-03-26 20:33:56
【问题描述】:

我有一个与标签对象具有 m2m 关系的博客模型。我希望每个博客都有多组标签,例如 [tagset1,tagset2......]。当用户提交一些标签集 [usertagset1,usertagset2.....] 来检索博客时,我必须返回所有博客 usertagset 是博客标签集的子集。

我不确定以最少数量解决此问题的最佳方法。的 sql 查询。 我是否应该创建一个包含博客标签集信息的新模型,然后让博客模型与这个新模型建立 m2m 关系?

【问题讨论】:

    标签: django django-models django-queryset


    【解决方案1】:

    你可以尝试逐个过滤掉标签:

    user_tags = [tag1, tag2, ... tagn]
    blogs = Blogs.objects.all()
    for tag in user_tags:
        blogs = blogs.filter(tags=tag) # assuming 'tags' is your M2M field name
    

    每个 filter() 都会缩小搜索范围,直到只剩下具有所有指定标签的博客。由于 Django 的 QuerySet 是惰性的并且可以组合,这将导致单个 SQL 查询。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-17
      • 1970-01-01
      • 2015-01-28
      • 1970-01-01
      • 1970-01-01
      • 2017-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多