python - 如何继承Django变量?

标签 python html django inheritance

我在理解 Django 中的继承方面遇到了一些麻烦。这是我的问题的抽象测试用例。 (请注意,我的应用程序名为 viz,我刚刚在其下构建了此测试用例)

urls.py

from django.urls import path
from viz import views


urlpatterns = [
    path('test.html', views.test_view, {}, name='test'),
    path('inherit_from_test.html', views.inherit_from_test_view, {}, name='inherit_test')
]

viz/views.py

def test_view(request):
    return render(request, "viz/test.html", context={'hello': 'hello'})


def inherit_from_test_view(request):
    return render(request, "viz/inherit_from_test.html", context={'django': 'django' })

viz/static/viz/test.html

<body>
<h1>
    {{ hello }}
</h1>
<h2>
    {% block content %}

    {% endblock %}
</h2>
</body>
</html>

viz/static/viz/inherit_from_test.html

{% extends "viz/test.html" %}

{% block content %}
    {{ django }}
{% endblock %}

正如预期的那样,test.html 文件有一个 h1 标记,表示 hello。不过,我希望在 inherit_from_test.html 中看到 h1h2 标记。相反,inherit_from_test.html 文件仅包含 h2 标记,表示 Django

为什么inherit_from_test.html没有继承{{ hello }}变量的内容?

如何使 {{ hello }} 的内容在继承的模板中可用?

最佳答案

模板继承;观点没有。只有您的 test_view 才会将 hello 变量发送到上下文。当您调用 inherit_from_test_view 时,它不存在。

关于python - 如何继承Django变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51898527/

相关文章:

php - 使用 autocomplete.js 中的值的 id 填充隐藏的输入

javascript - appendHtml() 不会附加完整的 HTML - Dart

python - 将文件从 django fileupload 传递到远程服务器

django - 如何用 BeautifulSoup 解析脚本?

python - 计算集合之间的乘积,仅保留不重复项的乘积

python - 字典理解 - 不要生成具有空列表值的键/值对

python - 检查某事是否为列表

python - 你如何在条件语句中使用 OR 和 AND?

javascript - jQuery .prependTo() 创建的表导致浏览器出现 "lag"

python - Django REST框架: nested serializer not properly validating data