首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使项目模板和Satchmo模板共存?

如何使项目模板和Satchmo模板共存?
EN

Stack Overflow用户
提问于 2009-03-11 21:57:20
回答 3查看 873关注 0票数 2

我正在使用驻留在现有项目中的Satchmo安装。这个项目有自己的模板,也有一些不同的应用程序安装的模板。其中一些特定于应用程序的模板有自己的app_base.html变体,期望从base.html派生出来。我希望能够对我的Satchmo模板做同样的事情,让它们驻留在我的项目的基础上,但是在所有这些模板周围都添加了一些额外的html。

  • base.html
  • index.html
  • /news
    • news_base.html (扩展base.html并添加特定于新闻的模板features)
    • index.html
    • detail.html

)

代码语言:javascript
复制
- /store  
    - base.html (overriding Satchmo's base) 

这个结构在某种程度上起作用,但不是我所期望的那样。在/store/base.html (Satchmo的基础)中,我只是用一条测试消息替换了所有内容。我可以看到消息,所以我知道satchmo正在加载它的基础,而不是站点的基础。但是,我不能再扩展项目的基础了,因为我使用:

代码语言:javascript
复制
{% extends "base.html %}

会产生一个递归错误,因为它本身和下面的调用都无法工作。

代码语言:javascript
复制
{% extends "../base.html" %}

我意识到,我可以将我的项目的base.html更改为一个稍微不同的名称,并将所有特定于应用程序的模板指向它们,但在模板结构的这样一个基本方面,它似乎是一个相当大的黑客。

EN

回答 3

Stack Overflow用户

发布于 2009-03-12 01:15:23

嗯,我不认为django会相对地查找类似的模板。

有点疯狂,但这应该管用:

  • /templates/store/base.html扩展"global_base.html"
  • /templates/global_base.html扩展"base.html"
票数 0
EN

Stack Overflow用户

发布于 2009-06-27 22:41:18

根据模板结构的设置方式,使用settings.TEMPLATE_LOADERS变量也可能是个好主意。

默认:('django.template.loaders.filesystem.load_template_source','django.template.loaders.app_directories.load_template_source'):知道如何从各种来源导入模板的可调用(作为字符串)的元组。关于Python程序员,请参阅Django模板语言。

有关此操作如何影响模板加载过程的更多信息:http://docs.djangoproject.com/en/dev/ref/templates/api/#loader-types

从描述问题的方式来看,似乎通过注释掉"app_directories.load_template_source“文件行,您可能会更好地找到一种方法来完成您正在做的事情。

django.template.loaders.app_directories.load_template_source在文件系统上从

应用程序中加载模板。对于INSTALLED_APPS中的每个应用程序,加载程序都会查找一个模板子目录。如果目录存在,Django将在其中查找模板。

这意味着你可以用你自己的应用程序来存储模板。这也使得使用默认模板分发Django应用程序变得很容易。

例如,对于此设置:

INSTALLED_APPS =(‘myproject.polks’,'myproject.music') ...then get_template('foo.html')将按照以下顺序查找这些目录中的模板:

/path/to/myproject/轮询/ templates /foo.html /path/to/myproject/music/templates/foo.html注意,加载程序在第一次导入时执行优化:它缓存INSTALLED_APPS包具有模板子目录的列表。

默认情况下,此加载程序已启用.

票数 0
EN

Stack Overflow用户

发布于 2010-11-03 22:54:15

我只是遇到了同样的问题。看起来,satchmo开发人员计划在商店模板目录中放置一个“空”基。虽然这可能与你无关,但我想在这里看到这个。

您可以在模板目录中创建一个"shop“目录,并将主要的satchmo base.html复制到该目录中。

这对我有用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/636549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档