Я пишу после проверки разных тем на похожие проблемы, но безуспешно, поэтому я делюсь с вами своей проблемой, надеясь, что вы можете дать мне подсказку о том, как ее решить.
Я пытаюсь создать средство проверки рейтинга ключевых слов, и у меня есть две модели: ключевое слово и рейтинг:
models.py
class Keyword(models.Model):
keyword = models.CharField(max_length=100)
date_added = models.DateTimeField(default=timezone.now)
market = models.CharField(max_length=100)
domain = models.CharField(max_length=100)
class Ranking(models.Model):
keyword = models.ForeignKey(Keyword, on_delete=models.CASCADE)
position = models.IntegerField()
position_date = models.DateTimeField(default=timezone.now)
В основном Пользователь вставит список ключевых слов в БД, и API будет проверять рейтинг каждого ключевого слова каждый месяц. Модель ранжирования будет хранить каждую проверку ранжирования и связывать ее с ключевым словом.
Я хотел бы отобразить в шаблоне html список ключевых слов с их ранжированием (все из-за того, что я хочу показать исторические рейтинги тоже), и вот тут у меня возникают проблемы. По сути, я не могу получить все рейтинги для данного ключевого слова и передать его html в качестве тега шаблона. Я только могу показать полный список ключевых слов и все.
views.py
def rankings(request):
keywords = Keyword.objects.filter(market="es")
return render(request, 'rankapi/marketview.html', {'keywords': keywords})
Я пытался сделать это наоборот, начиная из рейтинга, но тогда я не могу отобразить ключевые слова, которые не имеют рейтинга.
views.py
def rankings(request):
ranking = Ranking.objects.all()
return render(request, 'rankapi/marketview.html', {ranking':ranking})
А затем в html:
marketview. html
{% for rank in ranking %}
{{rank.position}}{{rank.position_date}} {{rank.keyword.keyword}}
{% endfor %}
Но при этом не отображаются ключевые слова, которым не присвоен рейтинг (недавно добавленные или еще не проверенные).
У вас есть подсказка, чтобы помочь мне решить эту проблему?
Большое спасибо!