在Snippets上处理Wagtail文档时出现InvalidTemplateLibrary异常

时间:2017-03-06 10:34:42

标签: python django wagtail wagtail-snippet

我跟随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,还是与其他博客模板一起?

感谢。

1 个答案:

答案 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;模板'项目中存在的所有应用程序的目录。