4

プロジェクト用のカスタム django テンプレートタグを作成しようとしています。利用可能なガイドに従って、タグを作成しました。しかし、タグは取得されていません。それらはコンパイルされていません(.pycファイルが生成されていないため)。

構造はmy_dir>app>templatetags>markup_tags.py. フォルダapptemplatetags必要な__init__.pyファイルがあります。

私のmarkup_tags.pyファイルは

from django import template
from random import randint

register = template.Library()

@register.assignment_tag()
def random_number(length=3):
    """
    Create a random integer with given length.
    For a length of 3 it will be between 100 and 999.
    For a length of 4 it will be between 1000 and 9999.
    """
    return randint(10**(length-1), (10**(length)-1))

python manage.py shellコマンドを使用してタグを確認すると:

from my_dir.app.templatetags import markup_tags

エラーが発生します:

Traceback (most recent call last):
File "<console>", line 1, in <module>
ImportError: No module named templatetags

ここで何が問題なのですか?ありがとう。

編集:フォルダ構造は フォルダ構造

4

2 に答える 2

1

何が問題なのかわかりませんがtemplatetags、アプリディレクトリにコピーしていたフォルダーがpythonによって取得されていませんでした。それを削除し、IDE ( PyCharm)を使用して、新しいファイルPython Packageを自動的に生成するアプリで新しい__init__.pyファイルを作成しました。

その後、サーバーを再起動しましたが、現在は機能しているようです。変だけど!

于 2015-06-05T03:26:11.547 に答える
0


以下のコードをsettings.pyに追加して解決する前に、同じ問題がありました

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

アプリを追加する

INSTALLED_APPS = ('myapp',)
そして、必ず
__init__.py
「myapp」フォルダーとテンプレートタグにあります。

于 2015-12-11T07:53:33.783 に答える