2010-12-20 11 views
23

私はDjangoの1.2.1を使用していると私は私の テンプレートタグをロードしようとしている問題を抱えているに読み込むことができません。ジャンゴ:テンプレートタグ

[email protected]:~/work/django-projects/myproject$ ls myapp/templatetags/ 
mytags.py __init.py__ 
[email protected]:~/work/django-projects/myproject$ more 
myapp/templatetags/mytags.py 


from django import template 

register = template.Library() 

@register.simple_tag 
def myclass(request): 
    return request.path 

私はINSTALLED_APPSに 'myappに' を追加し、(StackOverflowのからの提案あたり として)TEMPLATE_LOADERSを更新:

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader', 
    'django.template.loaders.app_directories.Loader', 
    'django.template.loaders.eggs.Loader', 
    'django.template.loaders.app_directories.load_template_source', 
) 

私は、この警告メッセージが表示され、サーバーを起動すると:

/usr/local/lib/python2.6/dist-packages/django/template/loaders/eggs.py:4: 
UserWarning: Module _mysql was already imported from 
/usr/lib/pymodules/python2.6/_mysql.so, but 
/usr/lib/pymodules/python2.6 is being added to sys.path 

モジュールをシェルにインポートしようとすると、インポートできません:

>>> from django.templatetags import mytags 
Traceback (most recent call last): 
File "<console>", line 1, in <module> 
ImportError: cannot import name mytags 
>>> from myapp.templatetags import mytags 
Traceback (most recent call last): 
File "<console>", line 1, in <module> 
ImportError: No module named templatetags 

パスまたはセットアップに何か問題がありますか?何か案は?

+3

'myapp'ディレクトリに' __init __。py'もありますか? – Wolph

+0

良い質問です。はい、私はそうです: nate @ nate-desktop:〜/ work/django-projects/myproject $ ls myapp/ __init__.py models.py templatetags views.py __init __。pyc models.pyc tests.py views.pyc –

+0

'ls'の出力を入力するのが難しいです。アンダースコアは太字に変換されます。これは、二重アンダースコアのinit.py二重のアンダースコアを表示するはずです。 –

答えて

15

私の問題は、タイプミスが原因でした。私はtemplatetags __init.py__でファイルを呼び出しましたが、名前は__init__.pyであるはずです。

85

これに就いている人のための注意:あなたのdjangoアプリケーションに新しいファイルを登録するには、開発サーバーを再起動する必要があります。

+1

それは私の問題を修正しました、ありがとう! – Symmetric

+7

さて、排水管の下に20分ありますが、どんな速度でも20本節約できました。ありがとう。 – chucksmash

7

私は同じ問題がありました。問題は、共有されたtemplatetagsディレクトリを使用していて、そのディレクトリに__init__.pyがないことでした。空ファイルが入っていて、再起動されたサーバーがすべて正常だったことを追加しました。

関連する問題