【发布时间】:2011-09-15 21:38:30
【问题描述】:
我在free-time project,我有这个模型:
class Post(models.Model):
title = models.CharField(max_length=255)
<..>
tags = TagAutocompleteField()
TagAutocompleteField() 与来自django-tagging 的TagField() 相同,女巫很简单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)
但我也不能在过滤器中使用它。
我应该如何获取所有具有相同标签的帖子?标记的常用方法是按标记获取对象,但如果标记被少数应用程序使用,它可能提供的不仅仅是帖子。
【问题讨论】:
标签: python django view filter tags