Я работаю над простым инструментом группировки ключевых слов.Django group FK по полю
Фраза представляет ключевое слово в поисковой системе. SerpEntry представляет ссылку на сайте.
Я ищу способ группировать фразы по URL-адресам 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],
]
Не лучше ли использовать [ 'ManyToMany''] (https://docs.djangoproject.com/en/1.9/topics/db/examples/many_to_many/) соотношение вместо только '' ForeignKey''? Один URL может содержать несколько фраз, поэтому это имеет смысл. – Flaiming
SerpEntry уникален для каждой фразы, потому что URL-адреса могут быть в разных положениях и менять свое положение с течением времени. Я добавил фрагмент полного SerpEntry. НО, если у вас есть решение группировки с ManyToMany, вы можете :) –