Django变量不会在模板中呈现

时间:2018-11-22 05:28:31

标签: python django django-templates django-views

Django版本2.1.3

Python 3.7版

编写示例代码只是为了了解 Django 。现在,我使用的是模板,在呈现变量时我的运气是0。

views.py文件夹中,我创建了一个小词典,并将其传递给变量 content

from django.shortcuts import render

# Create your views here.

posts = [
    {
    'Title': 'Challanger 1',
    'Name': 'Sammy',
    'Age': '33',
    'Food': 'Seafood'
    },   
    {
    'Title': 'Challanger 2',
    'Name': 'Sammy',
    'Age': '33',
    'Food': 'Seafood'
    }
]

def home(request):
    content = {
        'posts': posts
    }
    return render(request, 'blog/home.html', content)

在我的home.html文件中,我在{{variable}}旁边添加了一些 123 ,以确保.html文件已连接到{{ 1}}。当我view.py时,只显示123,而我的py manage.py runserver

都不显示
{{variables}}

本地主机:8000 产生:

<!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>
</head>
<body>

    {% for post in posts %}

        <p>123 {{ post.name }}</p>
        <h1>123  {{ post.title }}</h1>
        <h1>123 {{ post.age }}</h1>

    {% endfor %}

</body>
</html>

当我从浏览器中打开视图源时:

123

123
123
123

123
123

旁注:当我进入<!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> </head> <body> <p>123 </p> <h1>123 </h1> <h1>123 </h1> <p>123 </p> <h1>123 </h1> <h1>123 </h1> </body> </html> 文件时,我注意到只有home.html{{post.title}}自动填充,而{{post.name}}{{post.age}}永远不会自动填充。

有时候,当我重写代码时,我已经删除了{{post.food}}文件中的所有内容,而没有home.html自动填充。无论哪种方式,最终结果都相同,变量不会加载。

2 个答案:

答案 0 :(得分:1)

您在模板中使用post.name(全部小写),但是您在python代码中定义了字典,以Name(大写N)作为键。

尝试使用{{ post.Name }}

答案 1 :(得分:0)

这是问题所在,字典键区分大小写。 尝试以下代码:

 <!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>
    </head>
    <body>

        {% for post in posts %}

            <p>123 {{ post.Name }}</p>
            <h1>123  {{ post.Title }}</h1>
            <h1>123 {{ post.Age }}</h1>

        {% endfor %}

    </body>
    </html>