我想在1个布局中{%include%} 8个不同的django模板,而不进行多个布局。 我的目标是减少模板文件夹中的.html文件总数。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
{%load static%}
<link rel="stylesheet" href="{%static 'web/css/style.css'%}">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
</head>
<body style='margin: 0px;'>
{%include 'web/header.html'%}
{%include 'web/personal.html'%}
{%include 'web/footer.html'%}
</body>
</html>
views.py
def index(request):
template_name = 'web/index.html'
p = personal.objects.all()
return render(request,template_name)
def personal(request):
template_name = 'web/personal.html'
return render(request,template_name)
def blog(request):
template_name = 'web/blog.html'
return render(request,template_name)
这是我的模板
web / personal.html->一些HTML
web / blog.html->一些HTML
。
。
。
web / n.html->一些HTML
我希望这些文件动态地包含在我的布局文件中 谢谢。
答案 0 :(得分:0)
我认为使用与您基本HTML不同的上下文将起作用:
views.py
def index(request):
template_name = 'web/index.html'
p = personal.objects.all()
return render(request,template_name, context={"template_name":"index"})
def personal(request):
template_name = 'web/personal.html'
return render(request,template_name, context={"template_name":"personal"})
def blog(request):
template_name = 'web/blog.html'
return render(request,template_name, context={"template_name":"blog"})
.html
<!DOCTYPE html>
...
<body style='margin: 0px;'>
{% if template_name == "index" %}
{%include 'web/header.html'%}
{% elif template_name == "personal" %}
{%include 'web/personal.html'%}
{% elif template_name == "footer" %}
{%include 'web/footer.html'%}
{% endif %}
</body>
</html>