【问题标题】:Cannot get PyCharm Django project to read and display Django Templating Language Tags无法让 PyC​​harm Django 项目读取和显示 Django 模板语言标签
【发布时间】:2018-05-21 11:22:22
【问题描述】:

我一直在为此烦恼,对使用 Django 进行 Web 开发是新手,而且我从未在 PyCharm 中设置过 Django 项目。它是 Django v2.0 和 PyCharm 2017.3。

我有一个包含两个应用程序的基本项目,例如,让我们调用一个 Test 和一个 TestProj。 Test是settings.py所在站点的核心,TestProj是我要添加模板的地方。

Test urls.py 指向 TestProj urls.py,当被请求时,它会向站点的根 url 提供一个 html 文件。此内容位于另一个名为 Test 的文件夹中,该文件夹位于 TestProj 的模板文件夹中

目录结构大致如下:

Test  >
    settings.py etc
TestProj  >
    templates  >
        Test  >
            index.html
            header.html
    other python files are here!

index.html 文件可以正常使用,但是当我尝试使用 Django 模板链接另一个 html 文件时会出现问题。这是 index.html:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Test</title>
    </head>
   <body>
       <div>
           {% block content %}
           {% endblock %}
       </div>
   </body>
</html>

这是位于同一模板目录中的标头 html:

{% extends 'Test/index.html' %}

{% block content %}
    <p>Hello World</p>
{% endblock %}

index.html 正常提供,但出于某种原因,无论我做什么 index.html 中的 Django {% block content %} 似乎没有评估。因此,我的 index.html 在使用 Pycharm 在浏览器中提供时,有一个空的正文而不是 Hello World。

模板中的 Test 文件夹在 PyCharm 中被标记为模板文件夹,所以我不明白为什么会这样。我还在 PyCharm 设置中选择了 Django 作为模板语言,我尝试重新安装 PyCharm。根据我的知识,settings.py 模板也正确配置如下:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'TestProj/templates/Test')]
        ,
        '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',
            ],
        },
    },
]

任何帮助将不胜感激!

【问题讨论】:

    标签: python html django templates pycharm


    【解决方案1】:

    【讨论】:

    • 在虚拟环境 venv 中设置为 Python 3.6,并添加了 Django 包。所以我认为我在这一点上没问题。
    • 如果你使用的是 Pycharm 社区版,它不会显示模板语法
    • 不幸的是,我正在使用专业版,所以它应该可以工作:(
    • 感谢您的帮助 Farrukh,我现在已经完成如下工作
    【解决方案2】:

    我已经解决了这个问题,但在我看来这是愚蠢的。 我在渲染时链接到 index.html 而不是标题,这应该是扩展的工作原理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-14
      • 2011-05-13
      • 2013-09-22
      • 2018-09-03
      • 2020-07-31
      • 2017-06-27
      • 2012-10-31
      • 2017-02-16
      相关资源
      最近更新 更多