我在mysql中有2个表。一个是主表,其中保留标题,标题将显示为选项卡标题,而一个内容表将显示为每个选项卡的内容。 2个表之间有外键。但是我无法在正确的标签下打印相关内容。
这是我显示标签标题的代码。
<ul class="nav nav-tabs">
{% for title in titles %}
<li class="nav-item">
<a class="nav-link active" id="{{ title.id }}" data-toggle="tab" href="#{{ title.name }}" role="tab" aria-controls="{{ title.name }}" aria-selected="true">{{ title.name }}</a>
</li>
{% endfor %}
</ul>
这是标签内容的一部分
<div class="tab-content" id="SideBarTabContent">
<!-- tab content -->
<div class="tab-pane fade show active" id="should print header name" role="tabpanel" aria-labelledby="should print header name">
<ul class="nav flex-column mb-2">
{% for item in contents %}
<li class="nav-item">
<a class="nav-link active" href="{{ item.id }}">
{{ item.name }}
<span class="sr-only"></span>
</a>
</li>
{% endfor %}
</ul>
</div>
</div>
有django代码:
def home(request):
titles = Headers.objects.all()[:10]
contents = content.objects.select_related('Content')
return render_to_response('main.html', {'titles' : titles, 'contents': contents})
答案 0 :(得分:1)
我通过在view.py生成html解决了问题。在收到您的反馈之前,我将使用它。但是我现在有另一个问题。在我的网站中,我在左侧栏中显示了此标签,而左侧栏是所有页面的静态页面。它应该在每一页中。但是我现在只能对main.html进行render_to_response,打开其他页面时失败。当我浏览其他页面时如何显示?
def home(request):
modules = Headers.objects.all()[:10]
m=0
i=0
tabHtml =''
contentHtml =''
while m < len(modules):
tabHtml += '<li class="nav-item"><a class="nav-link" id="'+modules[m].ModuleName+'-tab" data-toggle="tab" href="#'+modules[m].ModuleName+'" role="tab" aria-controls="'+modules[m].ModuleName+'" aria-selected="true">'+modules[m].ModuleName+'</a></li>'
contentHtml +='<div class="tab-pane fade show active" id="'+ modules[m].ModuleName + '" role="tabpanel" aria-labelledby="'+ modules[m].ModuleName + '-tab">'
moduleitems = Content.objects.select_related('Item').filter(Item_id =modules[m].id)
while i < len(moduleitems):
contentHtml +='<ul class="nav flex-column mb-2"><li class="nav-item"><a class="nav-link active" href="#"><span data-feather="home"></span>'+str(moduleitems[i].id)+'<span class="sr-only"></span></a></li></ul></div>'
i = i+1
m = m+1
return render_to_response('main.html', {'tabContentHtml' : contentHtml, 'tabHtml': tabHtml})