Добрый день!
Есть модель
class Tags(models.Model):
name = models.CharField(max_length=50, verbose_name=u'имя метки', help_text=u'Укажите метку(тег)', unique=True)
cloud = models.BooleanField(verbose_name=u'в облаке тегов', default=False)
class Meta:
db_table = 'article_tags'
def __unicode__(self):
return self.name
class Article(models.Model):
. . .
keywords = models.ManyToManyField(Tags, related_name='keywords', related_query_name='keyword', verbose_name=u'метки')
Есть вью:
def index(request):
articles = Article.objects.all().filter(draft=True)
cloud = Tags.objects.all().filter(cloud=True)
tags = articles
.all()
return render_to_response('article/index.html', {
'cloud': cloud,
'tags': tags })
def article(request, article_id):
articles = Article.objects.exclude(id=article_id)[0:3]
article = Article.objects.get(id=article_id)
tags = article.keywords.all()
return render_to_response('article/article.html', {
'article': article,
#'username': auth.get_user(request).get_full_name,
'articles': articles,
'tags': tags })
На главноей странице, вывожу список тегов соответствующих статей через
{{ article.keywords.all }}
он выводит, но выводит в виде:
[<TAGS: ТЕГ1 >, <TAGS: ВТОРОЙ >, <TAGS: ТРЕТИЙ ТЕГ >]
а мне нужно чтыбы: ТЕГ1, ВТОРОЙ, ТРЕТИЙ ТЕГ
Причем в самой статье выводит как положено, списком через запятую
{% for keyword in tags %}{{ keyword }}{% endfor %}
Не смейтесь, это наверное дико выглядит, но я пробовал через свой шаблонный фильтр
register = template.Library()
def foo(value):
return str(value).replace(’T’, '').replace(',', '').replace(':', '').replace('<', '').replace('>', '').replace('[', '').replace(']', '')
register.filter('foo', foo)
Он даже удаляет символы
[<T: >,]
но AGS - не удаляет. И что-то мне подсказывает что это не правильное решение
Подскажите пожалуйста, как это победить…
Updated 18 July 2016, 17:24 by isergart.