2

申し訳ありませんが、スタック オーバーフローといくつかのチュートリアルからいくつかの解決策を試しましたが、まだカスタム テンプレート タグを作成できませんでした。ImportError: No module named test_tagを介してサーバーを起動しようとしたときに得られるのはすべてですpython manage.py runserver

私は非常に基本的なテンプレートタグを作成しました (ここにあります: django templatetag? )。

私のフォルダ構造:

demo
    manage.py
    test
        __init__.py
        settings.py
        urls.py
        ...
        templatetags
            __init__.py
            test_tag.py

test_tag.py:

from django import template
register = template.Library()

@register.simple_tag
def test_tag(input):
    if "foo" == input:
        return "foo"
    if "bar" == input:
        return "bar"
    if "baz" == input:
        return "baz"
    return ""

index.html:

{% load test_tag %}
<html>
    <head>
    ...
    </head>
    <body>
        {% cms_toolbar %}

        {% foobarbaz "bar" %}
        {% foobarbaz "elephant" %}
        {% foobarbaz "foo" %}
    </body>
</html>

そして私のsettings.py:

INSTALLED_APPS = (
    ...
    'test_tag',
    ...
)

私のsettings.pyからさらに情報が必要な場合はお知らせください。サーバーを起動することさえできません。(インストールされたアプリから「test_tag」を削除すると、サーバーを起動できますが、もちろん、test_tag が不明であるというエラーが表示されます)。

ありがとう

4

1 に答える 1

4

templatetagsフォルダーはアプリケーション内にある必要があります。

プロジェクト ツリーは次のようになります。

demo
    manage.py
    test
        __init__.py
        settings.py
        urls.py
    test_app
        __init__.py
        models.py
        tests.py
        views.py
        templatetags
            __init__.py
            test_tag.py

次に、 に追加test_appINSTALLED_APPS、そこから削除test_tagします。

于 2013-10-20T15:50:56.620 に答える