我正在使用带有以下代码的简单StructBlock:
from wagtail.core import blocks
class ProfileById(blocks.StructBlock):
ids = blocks.CharBlock(label='Profile by ID')
class Meta:
template = 'myapp/blocks/profile_by_id.html'
icon = 'user'
但是,当将此组件呈现到页面时,它应该使用"https://api.server.ours/profiles/?ids=%ids&format=json".format(ids=ids)
之类的网址对服务器执行快速API调用,将json转换成Python可以遍历的内容,然后在myapp/blocks/profile_by_id.html
模板。
从StructBlock扩展的类是否可以覆盖def以“做事”,从而使我们可以将更多数据放入模板上下文中,以便在渲染模板时也可以利用这些数据?
我试图在wagtail文档中找到类似的内容,但看不到任何东西,只有对Page扩展而言,您可以覆盖serve()
def,这是一个完全不同的层次树。
答案 0 :(得分:2)
块类定义一个get_context
方法,可以重写该方法以在模板中插入其他上下文变量:
http://docs.wagtail.io/en/v2.2.2/topics/streamfield.html#template-rendering
(搜索is_happening_today
以获取相关示例代码)