読者です 読者をやめる 読者になる 読者になる

アンダースコアを含むアプリケーション名

Django
- myproject
-- __init__.py
-- settings.py
-- apps 
--- __init__.py
--- app_a
---- __init__.py
---- templates
---- templatetags
--- app_b
--- app_c

のような構成のDjangoプロジェクトを作って、settings.pyのINSTALLED_APPSに、

INSTALLED_APPS = (
    'myproject.apps.*',
)

のようにワイルドカードでインストール済みのアプリケーションを指定すると、myproject.apps.app_a, myproject.apps.app_b, myproject.apps.app_cの3つが有効になり、テンプレートローダー(django.template.loaders.app_directories)にも認識されるようになる・・・はずですが、Django 1.0では認識されません。

この問題はrev10078で修正されています。

僕は、プロジェクト直下のディレクトリにアプリケーションが大量に配置されることが嫌だったので、上記のようなディレクトリ構成にするようになったのですが、これでアプリケーション名(Pythonモジュール名)を自由につけられるようになりました。(以前にアンダースコアを含むDjangoアプリケーション名をつけて、このバグに気がつき改名したことがある。)