首页 > 解决方案 > Django 无法扩展到另一个应用程序中的模板

问题描述

这是目前项目的结构。

webbshop
  templates
    webbshop
      base.html
      settings.py
home
  templates
    home
      index.html

在我的“webbshop”设置中,这是我获得设置的“主”应用程序。

但是当我尝试用 index.html 扩展 base.html 时,我收到了这个错误:

django.template.exceptions.TemplateDoesNotExist: webbshop/base.html"

在页面上它显示了这一点。 https://i.stack.imgur.com/QUQbd.png

它似乎没有去 webbshop 应用程序中寻找模板。我四处搜寻,应该可以。

这是我的 index.html

{% extends 'webbshop/base.html' %}

{% block content %}
hey
{% endblock %}

这些是我在 webbshop 应用程序中安装的应用程序。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'home',
]

解决了!解决方案:

即使我在 webbshop 应用程序中有 settings.py 文件,我仍然必须将“webbshop”添加为已安装的应用程序。否则它将无法识别该应用程序中的模板。

标签: pythondjangodjango-templates

解决方案


要使我的评论成为您可以接受的答案:

Django 中没有“主应用程序”这样的概念;如果webbshop碰巧包含webbshop/settings.py,它可能是 Django 项目模块,但它不是自动应用程序。

您需要将其添加到INSTALLED_APPS(即使它不提供视图、url、模型等),以便默认模板查找机制在webbshop/templates.


推荐阅读