【问题标题】:Django model group by ManyToMany matches countManyToMany的Django模型组匹配计数
【发布时间】:2016-05-11 19:28:11
【问题描述】:

我正在开发一个简单的关键字分组工具。 我想按 SERP 中相同网址的数量对短语进行分组。

短语代表搜索引擎中的关键字。 SerpEntry 表示站点上的链接。

我正在寻找一种方法来选择在 SerpEntry 中具有至少 N 个相同 url 的短语。

这是我的模型:

class Phrase(models.Model):
    text = models.CharField(max_length=1000, unique=True)
    _serp = models.OneToOneField(Serp, null=True, blank=True, related_name='phrase', db_column="serp")

class SerpEntry(models.Model):
    phrase = models.ForeignKey(Phrase, related_name='serp_entry')
    position = models.PositiveIntegerField()
    url = models.TextField(max_length=2000)
    title = models.CharField(max_length=100)
    snippet = models.TextField()

您对如何做到这一点有任何建议吗?

【问题讨论】:

    标签: django django-aggregation


    【解决方案1】:

    这样的事情可能会奏效:

    Phrase.objects.filter(serp_entry__id__gt=0, #or whatever filter you need
                ).annotate(has_count=Count('id')
                ).order_by('serp_entry__phrase', #or whatever order you need
                ).filter(has_count__gt=100)
    

    【讨论】:

    • 我明天去看看。感谢您的建议!
    猜你喜欢
    • 2011-12-14
    • 2016-04-29
    • 1970-01-01
    • 2012-04-12
    • 2016-10-12
    • 2016-09-06
    • 1970-01-01
    • 2011-04-26
    • 2018-04-05
    相关资源
    最近更新 更多