Wagtail Snippets 代码片段
Snippets 是一段不必成为一个完整网页的内容片段。它可以被用于制作二级内容,例如页头、页脚和边栏,这些内容可以在 Wagtail admin 中编辑。虽然 Snippets 也是 Django 模型,但却不继承自 Page 类,也不属于 Wagtail tree 结构中。然而,它们仍旧可以通过 register_snippet
类修饰器将模型关联到管理面板并作为一个代码片段被编辑。
相比 Pages,Snippets 缺少许多功能,例如在 Wagtail admin 中排序或定义 URL。因此,应根据内容类型的需要谨慎决定是否使用。
在模版中使用
自定义标签
在应用目录中创建 templatetags
目录及 templatetags/my_tags.py
文件并编写以下代码注册标签:
from django import template
from company.models import ProductCategory
register = template.Library()
@register.inclusion_tag('tags/product_category.html', takes_context=True)
def category(context):
return {
'category': ProductCategory.objects.all(),
'request': context['request'],
}
可以在一个文件中注册多个标签!
标签模版文件
tags/product_category.html
位于应用 templates
目录中,即标签被调用时渲染的模版。
{% for c in category %}
<p>{{ c }}</p>
{% endfor %}
调用标签
使用前需重启应用
标签需加载后方可使用,加载时使用包含注册代码的文件名:
{% load wagtailcore_tags my_tags %}
在模版中调用则使用注册的函数名,注意,不要使用变量标签:
{% category %}
会员讨论区