Подключил django-taggit к блогу. Хочу вывести определенный набор тегов под каждой статьей, используя {{ article.tags.names }}. В шаблоне - получаю список тэгов под статьей ['linux', 'python', 'english']. Как можно исправить это?
views.py
def index(request):
lastet_articles_list = Article.objects.order_by('-pub_date')
list_of_tags = []
for obj in lastet_articles_list:
list_of_tags += obj.tags.names()
list_of_tags = list(set(list_of_tags))
context = {
'lastet_articles_list': lastet_articles_list,
'list_of_tags': list_of_tags,
}
return render(request, 'article/index.html', context)
(list_of_tags здесь использую, чтобы просто вывести имеющиеся тэги на сайте)
index.html
{% endfor %} {% endif %}
models.py
from taggit.managers import TaggableManager
class Article(models.Model): title = models.CharField(max_length=50) pub_date = models.DateTimeField('date published') text = models.TextField() tags = TaggableManager()
Ответ
Все правильно, метод names возвращает массив имен тэгов. Выводите их по одному в вашем блоге.
Эксперимент, чтобы понять как это работает:
>>> from Tasks.models import Post
>>> p = Post.objects.get(pk=1)
>>> p.tags
Комментариев нет:
Отправить комментарий