【问题标题】:Render child page inside the base html template in Python Django在 Python Django 中的基本 html 模板中呈现子页面
【发布时间】:2020-04-15 23:55:45
【问题描述】:

我正在尝试在基本 html 页面中呈现模板。基本 html 具有整个站点通用的页眉、页脚和菜单。页面的中间部分必须来自子页面。我想我一切正常,200 OK,但它不起作用,我看不到子页面、表单和 div 的内容。我只看到所有请求的 base.html。我错过了什么?

project
   |
    ---templates/base.html
    ---templates/childpage.html

base.html

{% load static %}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>

<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="{% static 'css/custom.css' %}">
</head>

<body>

    {% block content %}

    {% endblock %}

</body>

</html>

childpage.html

{% extends "base.html" %}
{% block content %}
<form action="" method="">

</form>
<br><br><br>

<div class="something">
<a>some content</a>
</div>

{% endblock content %}

观看次数

def home(request):
    return render(request, 'base.html')

def askforchild(request):
    return render(request, 'childpage.html')

网址

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url('', views.home, name='Site Home Page'),
    url('askforchild', views.askforchild, name='child page'),
]

【问题讨论】:

  • 它不起作用是什么意思?缺少基本模板吗?
  • 看不到子页面、表单和div的内容。我只看到 base.html。
  • 问题是不是{% endblock content%}末尾缺少空格?
  • 已修复并检查。不用找了。我只看到基本页面,页面中间没有预期的子页面。
  • 我猜这是因为你必须写 {%endblock content%} 而不仅仅是 endblock

标签: python django python-3.x django-templates django-views


【解决方案1】:

主页"" 的url 列表必须移动到url 列表的底部。正则表达式将所有请求捕获为主页请求。抓住所有,一个空模式应该在 url 列表的底部。

【讨论】:

    猜你喜欢
    • 2012-12-17
    • 1970-01-01
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 1970-01-01
    相关资源
    最近更新 更多