微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 我无法扩展模板django

我无法展开模板base.html模板header.html

内容base.html

<div id="main-container">
  <!-- HEADER -->
  {% block header %}{% endblock %}
  <!-- END HEADER -->
</div>

内容header.html

{% extends "blog/base.html" %}
{% block header %}
<header id="header">
***
</header>
{% endblock %}

浏览器中的输出获取代码

<div id="main-container">
  <!-- HEADER -->

  <!-- END HEADER -->

为什么不能扩展模板?
使用{%include“blog / header.html”%}代码插入.使用扩展号.
使用Django 1.10.1

views.py

from django.shortcuts import render
from django.utils import timezone
from .models import Post
from django.shortcuts import render,get_object_or_404

def post_list(request):
    posts = Post.objects.filter(published_date__lte=timezone.Now()).order_by('published_date')
    return render(request,'blog/index.html',{'posts': posts})

def post_detail(request,pk):
        post = get_object_or_404 (Post,pk=pk)
        return render(request,'blog/base.html',{'post': post})

def header(request):
    return render(request,'blog/header.html')

通过
{%include“blog / header.html”%}有效.所以拼写正确的方式.

认为这里的错误

def header(请求):
    return(请求,’blog / header.html’)

def header(请求):
    渲染(请求,’blog / header.html’)

def header(请求):
    return render_to_response(request,’blog / header.html’)

不工作(((

解决方法

我想你会混淆django模板中的include和extend.

根据您的文件名,我假设header.html是要包含在base.html中的部分,并且您正在渲染base.html.

Django模板引擎不能这样工作.

在base.html中使用include {%include“path / to / header.html”%},juse在header.html中使用标题html.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐