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”添加为已安装的应用程序。否则它将无法识别该应用程序中的模板。


繁华开满天机
浏览 71回答 2
2回答

千万里不及你

要使我的评论成为您可以接受的答案:Django 中没有“主应用程序”这样的概念;如果webbshop碰巧包含webbshop/settings.py,它可能是 Django 项目模块,但它不是自动应用程序。您需要将其添加到INSTALLED_APPS(即使它不提供视图、url、模型等),以便默认模板查找机制在webbshop/templates.

墨色风雨

哦,好的,您需要在 settings.py 中进行这些更改:在 BASE_DIR 行下方添加以下行:TEMPLATE_DIR = os.path.join(BASE_DIR, 'templates')并在 DIRS 下的 TEMPLATES 下添加这个新变量“TEMPLATE_DIR”:模板 -> 'DIRS' :[TEMPLATE_DIR],谢谢。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python