我有自己的模板标签:
@register.inclusion_tag('path_to_module.html', takes_context=True)
def getmodule(context, token):
try:
return slow_function(params)
except Exception, e:
return None
而且速度非常慢。模板正在等待此标签。
我可以异步调用它们吗?
最佳答案
如果它是可缓存的(不需要每个页面 View 都是唯一的);然后缓存它。使用Django's cache API在您的模板标签中,或 template fragment caching直接在您的模板中。正如 @jpic 所说,如果需要一段时间才能重新计算,请将其传递给像 Celery 这样的任务队列。
如果您出于某种原因需要此功能来运行每个页面 View ;然后将其分离到一个新 View 中,并使用 JavaScript 将其异步加载到主模板中的某个容器中。
关于python - 动态模板标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9805233/