2016-03-28 3 views
0

長い時間の読者、初めての質問者です。あなたの助けをありがとう。 生成された各ページに、各ドキュメントタグのタイトルを追加しようとしています。したがって、タグが付いている場合、「プレスリリース」では、そのタグを含むすべての文書のリストが表示され、ヘッダーには「プレスリリース」というヘッダーが上部に表示されます。私の人生のために、私はテンプレートのタグを参照する方法を理解することができません。どんな助けもありがとう!Django ListViewでクエリ用語を参照しようとすると、多くの参照が多いページのタイルとして表示されます

from django.shortcuts import render, get_object_or_404 
from .models import Document, Tag 
from django.views.generic import ListView 

class DocumentList(ListView): 

    template_name = 'documents/document_list.html' 

def get_queryset(self): 
    self.tag = get_object_or_404(Tag, name=self.kwargs['tag']) 
    return Document.objects.filter(tags = self.tag) 

テンプレート:

{% extends 'base.html' %} 
{% block content %} 


<div class= 'container'> 
<div class="panel panel-default"> 
<!-- Default panel contents --> 
<div class="panel-heading">WHAT GOES HERE!?!</div> 
<div class="panel-body"> 
<p>.These files will assist in</p> 
</div> 

<table class= '.table-responsive'> 
{% for Document in object_list %} 
<tr> 
    <td>{{ Document.name }}</td> 

    <td>{{ Document.discription }}</td> 

{% endfor %} 
</div> 
{% endblock %} 

urls.py

from django.conf.urls import url 

from . import views 

urlpatterns = [ 
url(r'^(?P<tag>[\w-]+)/index/$', views.DocumentList.as_view(), name =  'documentlist'), 
] 

答えて

0

テンプレートでそれをしたい場合は、あなたがコンテキストに追加する必要があります。

def get_context_data(self, **kwargs): 
    context = super(DocumentList, self).get_context_data(**kwargs) 
    context['tag'] = self.tag 
    return context 

今、あなたは{{ tag }}経由でテンプレートでそれにアクセスすることができます。それを行うための最善の方法は、ビュークラスにget_context_dataを定義することです。

関連する問題