我跟随Wagtail documentation on Snippets以确保我可以在创建自己的工作之前完成工作。但是遇到了绊脚石。我已经在models.py文件中添加了广告的模型,现在正在创建demo_tags.py文件。目前它读取 -
from django import template
from demo.models import *
register = template.Library()
... #don't know if something is supposed to go in here
# Advert snippets
@register.inclusion_tag('demo/tags/adverts.html', takes_context=True)
def adverts(context):
return {
'adverts': Advert.objects.all(),
'request': context['request'],
}
当我运行开发服务器时,from demo.models import *
行会产生InvalidTemplateLibrary
错误。
显然我应该更换替换“演示”'和' *'有什么,但是什么?
此外,在创建名为adverts.html的模板时,应该进入哪个目录? templatetags one,还是与其他博客模板一起?
感谢。
答案 0 :(得分:0)
demo.models
指的是在Wagtail演示网站上定义Advert
模型的模块。如果您已经在其他地方定义了这个 - 例如在新的Wagtail项目中创建的home/models.py
文件 - 您需要相应地更改它:
from home.models import *
您应该在app目录中的templates/demo/tags/adverts.html
位置创建adverts.html。更一般地说 - 相对于项目中的所有有效模板位置,Django将在您给出的路径(' demo / tags / adverts.html')中寻找模板 - 这通常意味着&# 39;模板'项目中存在的所有应用程序的目录。