Я в проекте свободного времени , и у меня есть эта модель:
class Post(models.Model):
title = models.CharField(max_length=255)
<..>
tags = TagAutocompleteField()
TagAutocompleteField()
совпадает с TagField()
из django-tagging Ведьма проста CharField
, поэтому print post.tags
даст 'one two three'
вместо ['one', 'two', 'three',]
.
Также у меня есть вид:
def tagged(request, tag_id):
tag = get_object_or_404(Tag, pk=tag_id)
post_list = Post.objects.all() \
.filter(tags__split__in=tag) \
.filter(is_published=True) \
.order_by('-time_publish')
return render_to_response('plugins/persona/list.html', {
'post_list': post_list,
})
Проблема в том, что я не могу отфильтровать все сообщения, имеющие определенный тег, поскольку теги charField
Я пытался использовать split()
, но фильтры не позволяют это.
Люди предлагают использовать эту функцию для получения списка тегов:
def get_tags(self):
return Tag.objects.get_for_object(self)
но пока я не могу использовать его в фильтрах.
Как мне получить все сообщения с одинаковым тегом? Обычный способ тегирования - это получение объектов по тегу, но если теги используются несколькими приложениями, он может выдавать больше, чем посты.