Django模板继承时block content内容无法正常显示求助
Django不渲染block content解决步骤
- 第一步:检查应用注册配置
打开项目settings.py,确认你的应用first_page已经添加到INSTALLED_APPS列表中,示例配置如下:
INSTALLED_APPS = [ # Django内置默认应用 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # 新增你的应用 'first_page' ]
- 第二步:检查模板查找配置
同样在settings.py的TEMPLATES配置项中,确认APP_DIRS参数设置为True,如果你的base.html存放在项目根目录的templates文件夹下,还需要在DIRS中添加对应路径,示例如下:
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [BASE_DIR / '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', ], }, }, ]
- 第三步:检查视图渲染的模板路径
确认对应视图函数渲染的是子模板first_page/landingPage.html,而非父模板base.html,示例代码如下:
# first_page/views.py from django.shortcuts import render def landing_view(request): # 错误写法:return render(request, 'base.html') # 正确写法 return render(request, 'first_page/landingPage.html')
- 第四步:检查模板语法拼写
确认子模板中{% extends "base.html" %}、{% block content %}标签没有拼写错误,没有多余的空格或符号冲突。
以上步骤排查完成后,重启Django服务即可正常渲染block中的内容。
内容的提问来源于stack exchange,提问作者GCMeccariello
相关产品推荐
相关产品推荐

