2

我很难理解这一点。

我有一个观点,即通过一个标签来获取我所有的项目。当我显示模板时,我想在模板中包含该标签,以便我可以执行以下操作:“{{tag.name}} 中的内容。但我很难清楚自己的方式。任何帮助都会受到赞赏。

这是我的看法:

class TagDetail(ListView):
    """ Get all projects for a tag """

    template_name = "projects/TagDetail.html"

    def get_queryset(self):
        tags = get_list_or_404(Project, tags__slug=self.kwargs['slug'], displayed=True)
        return tags

    @method_decorator(login_required)
    def dispatch(self, *args, **kwargs):
        return super(TagDetail, self).dispatch(*args, **kwargs)
4

1 回答 1

4

如果您需要模板上下文中的某些内容,请考虑修改上下文。

https://docs.djangoproject.com/en/dev/ref/class-based-views/#django.views.generic.base.TemplateView.get_context_data

请注意,您实际上并没有访问标签对象,因此您必须查询您的标签。

def get_context_data(self, *args, **kwargs):
    ctx = super(MyView, self).get_context_data(*args, **kwargs)
    ctx['slug'] = self.kwargs['slug'] # or Tag.objects.get(slug=...)
    return ctx

<!-- template -->
The slug is: {{ slug }}
于 2011-12-17T06:01:01.480 回答