Django Tagging - проблема с разделенными тегами - PullRequest
0 голосов
/ 23 июня 2011

У меня проблема с тегами 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)

1007 * URLs *

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

Если URL выглядит примерно так

/ Новости / отделенный% 20tag /

класс представления возвращает пустой список. В чем причина? Как я могу это исправить?

Ответы [ 2 ]

2 голосов
/ 23 июня 2011

Я думаю, что тег запроса разделяется на два (в 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 голосов
/ 12 августа 2014

Как насчет форматирования вашего URL:

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