为什么django在extend之后生成空字符串?

为什么django在extend之后生成空字符串?,django,html,django-templates,Django,Html,Django Templates,我的基本模板是 <!DOCTYPE html> <html lang="en"> <head> <title>{% block title %}My amazing site{% endblock %}</title> </head> <body> <div id="sidebar"> {% block sidebar %} <ul>

我的基本模板是

<!DOCTYPE html>
<html lang="en">
<head>    
    <title>{% block title %}My amazing site{% endblock %}</title>
</head>

<body>
    <div id="sidebar">
        {% block sidebar %}
        <ul>
            <li><a href="/">Home</a></li>
            <li><a href="/blog/">Blog</a></li>
        </ul>
        {% endblock %}
    </div>

    <div id="content">
        {% block content %}{% endblock %}
    </div>
</body>
</html>

{%block title%}我的精彩网站{%endblock%}
{%块边栏%}
{%endblock%} {%block content%}{%endblock%}
索引页:

{% extends "base.html" %}

{% block title %}My amazing blog{% endblock %}

{% block content %}
{% for entry in blog_entries %}
    <h2>{{ entry.title }}</h2>
    <p>{{ entry.body }}</p>
{% endfor %}
{% endblock %}
{%extends“base.html”%}
{%block title%}我的精彩博客{%endblock%}
{%block content%}
{blog_entries%}
{{entry.title}
{{entry.body}

{%endfor%} {%endblock%}
这有什么不对?为什么它会在这些引用中生成奇怪的空文本? 这影响了我的布局。你有什么想法吗?谢谢


支付将您的标题标签插入正文标签的附加费用。可能从这里开始搜索?

这不能是模板组合的结果,因为在“base.html”模板中,{%block title%}位于节之间,但在生成的html中,它位于节中。还有一个CSS链接,在和部分之外。我有很多这样的空字符串,这不会影响我的布局,我想问题是你的部分在外面。

使用
Ctrl+U
打开的源代码看起来也很奇怪吗?可能是Chrome弄乱了Elements预览,因为我在Django 1.2.3上创建了一个视图来呈现这两个模板(并添加了两个虚拟博客条目),它正确呈现为:

<!DOCTYPE html> 
<html lang="en"> 
<head>    
    <title>My amazing blog</title> 
</head> 

<body> 
    <div id="sidebar"> 

        <ul> 
            <li><a href="/">Home</a></li> 
            <li><a href="/blog/">Blog</a></li> 
        </ul> 

    </div> 

    <div id="content"> 


    <h2>Test 1</h2> 
    <p>blah blah</p> 

    <h2>Test 2</h2> 
    <p>blah blah</p> 


    </div> 
</body> 
</html> 

我的精彩博客
测试1 胡说八道 测试2 胡说八道
终于!!!我找到了原因。我使用记事本++和编码

UTF-8

但我本应该去的

不带BOM的UTF-8


无论如何,谢谢大家。

你确定template index.html扩展了right base.html吗?是的,只有两个文件,生成的html是由这两个文件组合而成的。你是对的,源代码生成正确,但Chrome正在搞砸。当我尝试用黑色(例如ex)渲染标题时,我在标题前得到了很小的边距。当我在“检查元素”选项卡中删除此空字符串时,此边距消失。