Kay-frameworkのテンプレートの読み込み問題

Kayでのテンプレート継承 – Blog@uchikoshi22」より。

「kay/templates/」に同名のファイルがあると「myapp/templates/」よりも優先して読み込まれてしまう問題。

たとえば次のテンプレートでは「myapp/templates/base.html」ではなく「kay/templates/base.html」が読み込まれてしまう。

myapp/templates/index.html

{% extends "base.html" %}
{% block hoge %} EXTENDED? {% endblock %}

この問題はなかなか気がつかないだろう。

回避策だが、「Kayでのテンプレート継承 – Blog@uchikoshi22」にあるようにsettings.pyのTEMPLATE_DIRSで指定する。

TEMPLATE_DIRS = (
  'myapp/templates',
)

あるいは、テンプレートの方で「myapp/base.html」と指定しても良さそうだ。

myapp/templates/index.html

{% extends "myapp/base.html" %}
{% block hoge %} EXTENDED? {% endblock %}

ドキュメントの「7.4. テンプレートの読み込み」では「なお APP_DIR/templates ディレクトリは自動的に読み込みの対象になります。」とあるので、てっきり「myapp/templates/」が優先的に読み込まれると思っていたけれど、そうではないらしい。

最新のKay-fwのソースコードを追いかけていないので、何とも言えないが、自分もはまりそうで気になる。

ぜひともMLに投げていただきたいと思う。

コメント

  1. 詳しい説明ありがとうございます。

    てっきり私だけがチュートリアルもろくに読まず、知らずにいた初歩的なことなんだと思っていました。

  2. 参考になりました。
    というかいつも参考にさせていただいています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です