我正在开发一个简单的关键字分组工具。
短语表示搜索引擎中的关键字。 SerpEntry代表网站上的链接。
我正在寻找一种通过SerpEntry网址分组短语的方式。
以下是我的模特:
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],
]
答案 0 :(得分:0)
不确定您是否可以编写一个将短语列表附加到每个条目对象的查询。您可能必须在python中进行分组。 defaultdict(list)
可能会派上用场。
urls = defaultdict(list)
for entry in grab_all_entries.filter().select_related('phrase'):
urls[entry.url].append(phrase)