Django模板继承导致总线错误

时间:2012-08-10 10:53:16

标签: html django django-templates template-inheritance

我在Django模板中的多站点层次结构中工作,我需要一个主基础模板(base/base.html),我有几个主模板,例如base/base_twocol.html 。然后我有从这些模板扩展的模板,例如base/base_twocol_SECTION

然后我需要拥有相同的模板集,这些模板将处理其他网站,但需要从another_site/base.htmlanother_site/base_twocol.htmlanother_site/base_twocol_SECTION.html这些模板进行扩展。

目标是拥有一组可以为每个站点覆盖的主模板。

所以我有这样的事情:

templates/
    base/
        base.html 
        base_twocol.html           //extends base.html
        base_twocol_SECTION.html   // extends base_twocol.html
    another_site/
        base.html                  //extends base/base.html
        base_twocol.html           //extends base/base_twocol.html
        base_twocol_SECTION.html   //extends base/base_twocol_SECTION.html
    super_cool_site/
        base.html                  //extends base/base.html
        base_twocol.html           //extends base/base_twocol.html
        base_twocol_SECTION.html   //extends base/base_twocol_SECTION.html

我已创建了another_site/base.html,并使用了语法{% extends "base.html" %}

然而,当我运行服务器时,我得到一个"没有收到数据错误"来自浏览器和"总线错误"从控制台。

2 个答案:

答案 0 :(得分:2)

总线错误通过命名文件来体现,因为有两个同名的模板,其中一个模块试图从另一个扩展。

another_site / base.html 中,我有{% extends "base.html" %},但此文件也称为 base.html

所以基本上,我不能有一个名为X的tempalte,另一个名为X的tempalte,它扩展了模板X.也许我的问题没有说得很正确,这就是为什么没有采用它。

子模板需要具有唯一名称。我为我的所有模板文件做了这个,现在它工作正常。

答案 1 :(得分:1)

来自django-users群组中的帖子:

  

由于未对齐的内存访问或访问非内存而发生总线错误   存在的内存地址。在没有实际的错误(其他人   会看到),这清楚地表明了C中的一个或另一个   python使用的库与它冲突。

     

如果您编译了一个用于python的C库,就会发生这种情况   许多python包中的一个,包含一个小型C库   (mysql和postgresql数据库适配器,PIL,许多其他),并使用它   与编译时不同的python。

这几乎肯定与您的模板继承无关。检查您的Python和Django安装,必要时重新安装。还请提供有关您的环境的更多详细信息,并且正如Jonas所说,还有完整的堆栈跟踪。