为什么Django没有填写变量条目?

时间:2017-03-15 17:27:51

标签: django django-templates

在我的settings.py中,我定义了一个非空的SITE_NAME:

 SITE_NAME = 'Pets Gallery'

在我的views.py中,我有:

def all_pets(request):
    pets = models.Pet.objects.all()
    random.shuffle(pets)
    return render(request, 'multiple_pets.html', {
      'pets': pets,
      'site_name': settings.SITE_NAME,
      'page_name': 'All the pets we have!'})

在当前版本的模板中,基本模板具有:

<title>{{  page_name }} - {{ site_name }}</title>
...
<h1>{{ page_name }}</h1>

特定模板只是扩展基类的存根;我想定制它,但我现在正在进行烟雾测试。

呈现的页面似乎将所有值视为空。呈现的HTML源包含:

<title> - </title>
...
<h1></h1>

为什么将变量(目前,非空字符串)视为空,不可用等?

- UPDATE -

评论者在TEMPLATES询问了我的settings.py。我意识到我没有包含目录;我把它改为包括:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            os.path.join(BASE_DIR, 'pets/templates'),
        ],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

WSGI_APPLICATION = 'pets.wsgi.application'

这解决了我没有登录屏幕的直接问题。现在我可以进入登录界面。然而,这个出土的其他问题,我认为最好在另一个问题上输入。

0 个答案:

没有答案