【发布时间】:2016-09-07 22:32:59
【问题描述】:
我正在开发一个简单的关键字分组工具。
短语代表搜索引擎中的关键字。 SerpEntry 表示站点上的链接。
我正在寻找一种按 SerpEntry url 对短语进行分组的方法。
这是我的模型:
class Phrase(models.Model):
text = models.CharField(max_length=1000, unique=True)
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=1000)
snippet = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
你有什么建议吗?
我想要达到的结果示例:
urls = [
'url1': [phrase1,phrase2,phrase3],
'url2': [phrase2,phrase4,phrase5],
]
【问题讨论】:
-
使用
ManyToMany关系而不是仅使用ForeignKey不是更好吗?一个 URL 可以有多个短语,所以这是有道理的。 -
每个短语的 SerpEntry 都是唯一的,因为 url 可以在不同的位置并随着时间的推移改变它们的位置。我添加了完整 SerpEntry 的 sn-p。但是,如果您有使用 ManyToMany 分组的解决方案,欢迎您:)
标签: django django-models django-orm django-aggregation