2012-08-10 36 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安裝,必要時重新安裝。還請提供關於您的環境的更多細節,並且如喬納斯所說,完整的堆棧跟蹤。