2012-08-10 81 views
2

我正在Django模板中的多站点层次结构中工作,因此我需要一个主基础模板(base/base.html),为此我有几个从其扩展的主模板,如base/base_twocol.html。然后我有从这些模板扩展的模板,如base/base_twocol_SECTIONDjango模板继承导致总线错误

然后我需要有一组相同的模板,这些模板将处理另一个网站,但从这些模板延伸,如another_site/base.htmlanother_site/base_twocol.html,another_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" %}

然而,当我运行服务器,我得到一个“无数据收到来自浏览器的错误“和来自控制台的”总线错误“。

+0

我们可能看到完整的堆栈跟踪? – 2012-08-10 11:25:43

回答

2

总线错误是由文件的命名体现出来了,因为有两个同名的模板,其中一人试图从其他扩展。

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

所以基本上,我不能有一个称为X的tempalte,另一个称为X的tempalte扩展了模板X.也许我的问题没有措辞很正确,这就是为什么没有拿起。

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

+0

在我看来,它是因为开发自定义存储(现在已修复)时错误地使用__getattr__&__setattr__而表现出来的。只是说它可以与文件名循环无关,但一些新的错误本身 – alanjds 2013-03-26 15:38:24

+0

我有同样的问题 - 由于错字有一个无限的“扩展”循环。 – Evgeny 2013-08-05 21:15:09

1

django-users组中的线程:

的发生是由于未对齐的存储器访问,或者访问一个非 存在存储器地址A总线错误。在没有实际bug的情况下(其他 会看到),这清楚地表明python使用的一个或另一个库与它冲突。

如果你编译一个C库与Python使用,这样由一个小的C库的 (MySQL和PostgreSQL数据库适配器,PIL,许多人)许多Python包的 一个可能发生这种情况,并用它与 是不同的Python编译。

这是几乎可以肯定无关模板继承。检查你的Python和Django安装,必要时重新安装。还请提供关于您的环境的更多细节,并且如乔纳斯所说,完整的堆栈跟踪。