加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 我无法扩展模板django

发布时间:2020-12-20 13:13:58 所属栏目:Python 来源:网络整理
导读:我无法展开模板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{
我无法展开模板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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读