0

我在使用 django 标记时遇到了麻烦——按由多个单词组成的标记进行过滤不起作用。楷模

class MyWidget(models.Model):
    """Widget for tagging. It's damn bugged, so it need try except statement
    for be able to import in shell and work in general. Otherwise it's raiseing
    exception."""
    name = models.CharField(max_length = 50)
try:
    tagging.register(MyWidget)
except tagging.AlreadyRegistered:
    pass

意见

class PostsByTags(ListView):
    """View returns news filtered by tag."""
    template_name = 'news.djhtml'
    contect_object_name = 'news_list'
    def get_queryset(self):
        tags = unquote(self.kwargs['tag'])
        return TaggedItem.objects.get_by_model(News(), tags)

网址

url(r'^news/(?P<tag>[\w\s]*)/$',      views.PostsByTags.as_view(),
                                            name = 'tagged_news'),       

如果网址看起来像这样

/新闻/分离%20标签/

视图类返回空列表。什么原因?我该如何解决?

4

2 回答 2

2

我认为查询标签被分成两部分(在 tagging.utils.parse_tag_input 中)。

get_by_model 也可以接受一个标签项目而不是一个字符串,所以试试类似的东西。

tag_object = Tag.objects.get(name=self.kwargs['tag'])
TaggedItem.objects.get_by_model(News(), tag_object)
于 2011-06-23T10:54:58.217 回答
0

格式化你的网址怎么样:

url(r'^news/((?P<tag>[^/]+))/$',      views.PostsByTags.as_view(),
                                            name = 'tagged_news'),       
于 2014-08-12T19:14:40.493 回答