在尝试加载自定义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',
)
答案 0 :(得分:1)
Django可能因同名而感到困惑。尝试将文件myapp.py重命名为其他内容。
此外,您需要将模板标记应用程序添加到已安装的应用程序,并确保模板标记具有__init__.py
文件。可以找到更多信息here