@Sergey0808

Python Django, как по отношению many to many вытащить новости по тегам?

Пробую так:
tags = News.objects.filter(tags__id=self.object.id)


tags - это поле в модели:

tags = models.ManyToManyField(Tags)
  • Вопрос задан
  • 674 просмотра
Пригласить эксперта
Ответы на вопрос 1
Модель тега:

class Tag(models.Model):
    name = models.CharField(max_length=25, default=1)

    class Meta:
        verbose_name = 'Тег'
        verbose_name_plural = 'Теги'

    def __str__(self):
        return self.name


Вывод many_to_many в шаблон через django теги

Поле тег

class Article(models.Model):
    ...
    article_tags = models.ManyToManyField(Tag, related_name='tags_for_article')
    ...

Вьюшка

 articlitem = Article.objects.all()

Шаблон

{% for tag in  articlitem.article_tags.all %}
    <p class="articles_tags">{{ tag.name }}</p>
{% endfor %}


____

Вытаскиваем статьи по тегам во вьшке (в данном случае если тег, совпадает с тем, что имеет статья-глава):

additional = Article.objects.filter(article_tags__in=articlitem.article_tags.all()).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы