尝试将Django ListView中的查询词作为具有多对多引用的页面的平铺引用

尝试将Django ListView中的查询词作为具有多对多引用的页面的平铺引用,django,django-templates,django-views,Django,Django Templates,Django Views,长期读者,第一次提问者。谢谢你的帮助。 我正在尝试为每个文档标记为生成的每个页面添加标题。因此,如果它被标记为“press release”,页面将显示带有该标记的所有文档的列表,以及顶部带有标题“press release”的标题。就我个人而言,我不知道如何在模板中引用标记。任何帮助都将不胜感激 from django.shortcuts import render, get_object_or_404 from .models import Document, Tag from django

长期读者,第一次提问者。谢谢你的帮助。 我正在尝试为每个文档标记为生成的每个页面添加标题。因此,如果它被标记为“press release”,页面将显示带有该标记的所有文档的列表,以及顶部带有标题“press release”的标题。就我个人而言,我不知道如何在模板中引用标记。任何帮助都将不胜感激

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 %}
{%extends'base.html%}
{%block content%}
这里有什么!?!
。这些文件将有助于

{对象_列表%中的文档为%0} {{Document.name} {{Document.description} {%endfor%} {%endblock%}
url.py

from django.conf.urls import url

from . import views

urlpatterns = [
url(r'^(?P<tag>[\w-]+)/index/$', views.DocumentList.as_view(), name =     'documentlist'),
]
从django.conf.url导入url
从…起导入视图
URL模式=[
url(r'^(?P[\w-]+)/index/$,views.DocumentList.as_view(),name='DocumentList'),
]

如果要将其添加到模板中,必须将其添加到上下文中。最好的方法是在视图类上定义
get\u context\u data

def get_context_data(self, **kwargs):
    context = super(DocumentList, self).get_context_data(**kwargs)
    context['tag'] = self.tag
    return context
现在您可以通过
{{tag}
在模板中访问它