2011-06-23 46 views
0

我遇到了django標籤問題 - 通過由幾個詞組成的標籤進行過濾不起作用。 車型Django Tagging - 帶分隔標籤的問題

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'),  

如果URL尋找類似的東西

/新聞/分離%20tag/

視圖類返回空列表。原因是什麼?我該如何解決它?

+0

嘗試返回TaggedItem.objects.get_by_model(新聞,標籤)。通知新聞,而不是新聞()。另外,除非逗號分隔標籤列表,否則它將爲每個單詞返回一個標籤。如果你有一個單獨的標籤「分隔標籤」,只需在末尾加一個逗號「分隔標籤」, –

回答

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) 
+0

謝謝,我只需要明白這是怎麼發生的。 – I159

0

什麼格式化你的網址:

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