2

私はDjangoテンプレートのマルチサイト階層で作業しています。そのため、マスターベーステンプレート(base/base.html)が必要です。このテンプレートには、などから拡張されたいくつかのマスターテンプレートがありbase/base_twocol.htmlます。そして、それらのテンプレートから拡張されたテンプレートがありbase/base_twocol_SECTIONます。

次に、同じテンプレートのセットを用意する必要があります。これは別のサイトを処理しますが、、、などanother_site/base.htmlのテンプレートから拡張されます。another_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" %}

ただし、サーバーを実行すると、ブラウザから「データ受信エラーなし」が表示され、コンソールから「バスエラー」が表示されます。

4

2 に答える 2

2

同じ名前のテンプレートが2つあり、一方が他方から拡張しようとしているため、バスエラーはファイルの名前付けによって明らかになります。

another_site / base.htmlには、{% extends "base.html" %}がありますが、このファイルはbase.htmlとも呼ばれます。

したがって、基本的に、Xと呼ばれるテンプレートと、テンプレートXを拡張するXと呼ばれる別のテンプレートを使用することはできません。おそらく、私の質問が正しく表現されていなかったため、これが取り上げられませんでした。

子テンプレートには一意の名前を付ける必要があります。すべてのテンプレートファイルに対してこれを実行しましたが、正常に機能するようになりました。

于 2012-08-14T15:28:54.623 に答える
1

django-usersグループのスレッドから:

アラインされていないメモリアクセス、または存在しないメモリアドレスへのアクセスが原因でバスエラーが発生します。実際のバグ(他の​​人が見るだろう)がない場合、これは、Pythonで使用されるCライブラリのいずれかが競合していることを明確に示しています。

これは、小さなCライブラリ(mysqlおよびpostgresql DBアダプター、PIL、その他多数)で構成される多くのPythonパッケージの1つなど、Pythonで使用するCライブラリをコンパイルし、それとは異なるPythonで使用する場合に発生する可能性があります。に対してコンパイルされました。

これは、ほぼ確実に、テンプレートの継承とは関係ありません。PythonとDjangoのインストールを確認し、必要に応じて再インストールします。また、ご使用の環境と、Jonasが言うように、完全なスタックトレースについての詳細を提供してください。

于 2012-08-10T13:16:37.153 に答える