Im django-taggit을 사용하여 블로그에 태그 시스템을 생성합니다. 선택한 태그가있는 태그 만 표시되도록 객체를 어떻게 구분하고 필터링합니까? 당신이 장고를 클릭하면 StackOverflow와 같은 종류의 태그 색인 만들기 Django
그것은 모든 질문에 장고 태그를 제공합니다. this blog post에 설명 된 방법을 시도했지만 IndexError: tuple index out of range
이 표시됩니다. 이것은 내가 사용하고있는 코드입니다 :
url(r'^tagged/(?P<tag>[\w-]+)/$', TagView.as_view(), name='tag_url'),
class TagView(ListView):
context_object_name = 'blog'
template_name = 'links/index.html'
def get_queryset(self):
return Blog.objects.filter(tags__name__in=[self.args[0]])
def get_context_data(self, **kwargs):
context = super(TagView, self).get_context_data(**kwargs)
context['requested_tag'] = self.args[0]
return context
<a href='{% url tag_url tag=tag %}'>{{ tag.name }}</a>
이 방법을 사용하려면 뭔가가 누락 되었습니까?
꽤 일반적인 프로그래밍 필요성처럼 보입니다. 어쩌면 당신은 더 나은 방법을 알고 있습니다 ... 당신의 아이디어에 감사드립니다!
편집 : @ 캐서린의 제안에 따라 TagView :
class TagView(ListView):
model = Blog
context_object_name = 'blog_list'
template_name = 'tag-list.html'
def get_queryset(self):
queryset = super(TagView, self).get_queryset()
return queryset.filter(tags__name__in=self.kwargs['tags'])
class Blog(models.Model):
name = models.CharField(max_length=50)
date = models.DateTimeField()
slug = models.SlugField()
article = models.TextField()
tags = TaggableManager()
def __unicode__(self):
return self.name
태그 list.html :
이{% block content %}
stuff
{% for blog in blog_list %}
{{ blog.article }}
{{ blog.name }}
{% endfor %}
{% endblock %}
blog_list 템플릿에 존재하지 않으며, 블로그 객체가 없습니다 유효한. 오히려 'stuff'만 템플릿에 렌더링됩니다. 모든 아이디어를 높이 평가합니다! 감사!
가이드 : http://jquery.webspirited.com/2011/02/jquery-tagit-a-jquery-tagging-plugin/ – catherine
죄송합니다.하지만 필요한 것은 아닙니다. 태그의 보관 색인을 만들려면 내 URL과보기를 구성하는 방법을 알아 내려고합니다. 따라서 사용자가 태그를 클릭하면, 예를 들어'test'를 위해, 그것은 모두 동일한 태그를 가진 객체의 콜렉션 인'example.com/tagged/test /'에 링크됩니다. StackOverflow에서'django '라는 태그를 클릭하면 django :'stackoverflow.com/questions/tagged/django /'태그가 붙은 질문 모음으로 연결됩니다. 그러나 귀하의 의견을 보내 주셔서 감사합니다. –
아, 검색 중 ... – catherine