templategs“不是有效的标记库”,无法加载模型

时间:2012-12-14 04:49:26

标签: python django

在尝试加载自定义templtetags时,出现错误

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

问题在于templatetags / myapp.py无法加载模型 - > “myapp:没有名为模特的模块”。为什么以下行在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

在模板/ 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',

1 个答案:

答案 0 :(得分:1)

Django可能因同名而感到困惑。尝试将文件myapp.py重命名为其他内容。 此外,您需要将模板标记应用程序添加到已安装的应用程序,并确保模板标记具有__init__.py文件。可以找到更多信息here