gpt4 book ai didi

django - 加载自定义模板标签时出现问题(错误 : No module named x)

转载 作者:行者123 更新时间:2023-12-04 01:30:04 25 4
gpt4 key购买 nike

我目前正在编写一些自定义模板标签,但由于某种原因它们不会加载。我的目录结构如下:

MyProj
|
----MyApp
|
|----templatetags
|
|----myapp_tags.py
|----__init__.py

在 myapp_tags.py
from django.template import Library, Node
from myproj.myapp.models import Product

register = Library()

class LatestProductsNode(Node):
def render(self, context):
context['recent_products'] = Product.objects.all()[:5]
return ''

def get_latest_products(parser, token):
return LatestProductsNode()

get_latest_products = register.tag(get_latest_products)

在 settings.py
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
'myproj.myapp',
)

在模板中
{% load myapp_tags %}

尝试加载页面时出现的错误:
Exception Type:     TemplateSyntaxError Exception Value:    

'myapp_tags' is not a valid tag library: Could not load template library from django.templatetags.myapp_tags, No module named myapp_tags

最佳答案

在 settings.py 中,您永远不应该明确地将项目命名为“myproj”。在 INSTALLED_APPS ,只需使用'myapp'。另外,你应该有这个:

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

并确保有一个 __init__.pymyapp文件夹以及 templatetags .

使用 manage.py shell然后 from myapp.templatetags import myapp_tags找出 myapp_tags.py 文件中是否有任何 python 错误。

另外,请确保 myapp_tags.py 文件名不与项目中的另一个文件夹/文件冲突。

希望这会有所帮助。

关于django - 加载自定义模板标签时出现问题(错误 : No module named x),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1483927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com