私はDjango 1.2.1を使用しています。 テンプレートタグ:
{% load mytags %}
TemplateSyntaxError at /myapp/
"mytags" is not a valid tag library: Template library mytags not
found, tried django.templatetags.mytags
それは myproject/myapp/templatetags/mytags.py
.
nate@nate-desktop:~/work/django-projects/myproject$ ls myapp/templatetags/
mytags.py __init.py__
nate@nate-desktop:~/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
私は "myapp"を INSTALLED_APPS
、および更新 TEMPLATE_LOADERS
(として StackOverflowからの提案ごとに)
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
これは私のパスや設定に何か問題があることを意味しますか?何か案は?
回答:
回答№1の85これに就く他の人のための注意:あなたのdjangoアプリケーションに新しいファイルを登録するには、開発サーバーを再起動する必要があります。
回答№2の15
私の問題はタイプミスが原因でした。私はtemplatetagsでファイルを呼び出した __init.py__
しかしそれは命名されているはずです __init__.py
.
答え№3のための7
私も同じ問題がありました。問題は、私が共有している templatetags
ディレクトリにはありませんでした。 __init__.py
その中に。空ファイルが入っていて、再起動されたサーバーがすべて正常だったことを追加しました。