使用包含标签装饰器和动态模板
这是标准包含标签:
@register.inclusion_tag('results.html')
def show_results(poll):
...
我想知道是否可以使用包含标签来动态定义模板标签。示例:
@register.inclusion_tag('%s.html' % PATH)
def show_results(poll, PATH):
...
`
Here is the standard inclusion tag:
@register.inclusion_tag('results.html')
def show_results(poll):
...
I'd like to know if is it possible to use an inclusion tag, defining dynamically the template tag. Example:
@register.inclusion_tag('%s.html' % PATH)
def show_results(poll, PATH):
...
`
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不,这是不可能的,因为装饰器(或者实际上是 Python 函数)通常不是这样工作的。首次导入模块时会评估参数。
您需要编写适当的自定义标记,而不使用
inclusion_tag
快捷装饰器。这实际上并不那么难,文档向您展示了如何操作。No, this isn't possible, because that's not how decorators (or indeed Python functions generally) work. Parameters are evaluated when the module is first imported.
You'd need to write a proper custom tag, without using the
inclusion_tag
shortcut decorator. This actually isn't all that hard, the documentation shows you how.