2

私はこれについて頭を包むのに苦労しています。

タグであるスラッグによってすべてのプロジェクトを取得するビューがあります。テンプレートを表示するときに、「Content in {{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 に答える