1

カスタムテンプレートを読み込もうとすると、エラーが発生しました

'myapp' is not a valid tag library: ImportError raised loading myapp.templatetags.myapp: No module named models

問題はtemplatetags/myapp.pyにあり、モデルをロードできません->「myapp:modelsという名前のモジュールがありません」。myapp / templatetags / myapp.pyで次の行が失敗するのはなぜですか?

from myapp.models import Mymodel

いくつかの詳細を与えるために、私は以下を持っています:

myproject
 |
  --myapp
 |   |
 |   --templatetags
 |   |   |
 |   |    --__init__.py
 |   |    --myapp.py
 |   --__init__.py
 |   --models.py
 |   --views.py
 |
  --myapp2
 |   |
 |   --templatetags
 |   --__init__.py
 |   --models.py
 |   --views.py

template / myapp2 / showsomething.htmlには、次のようなものがあります。

{% load myapp %}

myapp / templatetags / myapp.pyで、私は以下を持っています

from myapp.models import Mymodel
register = Library()

@register.inclusion_tag('myapp/myapp.html')
def myapp():
    #....somecode ...   
    return {'some': 'value}

myapp / models.pyで、私は以下を持っています

from django.db import models
class Mymodel(models):
    ...some model code

settings.pyには、

...some other settings code ...

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.admin',
    'myapp',
    'myapp2',

)。

4

1 に答える 1

1

Djangoは、同じ名前のためにおそらく混乱しています。ファイルmyapp.pyの名前を別の名前に変更してみてください。また、インストール済みアプリにテンプレートタグアプリを追加し、テンプレートタグに__init__.pyファイルが含まれていることを確認する必要があります。詳細については、こちらをご覧ください

于 2012-12-14T04:51:08.930 に答える