我使用DetailView的复杂子类来渲染我的模板。
class Test(DetailView):
template_name = 'my_template.html'
model = MyModel
def ..my_methods.. (self, ...):
...
return result
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
...
return context
我如何使用此视图以便将结果呈现为字符串并将其保存在变量中?
我可以想到render_to_string()
,但我不确定如何在基于类的视图中使用它。
修改
仅在应用给定关键字时才dispatch()
校准render_to_string()
方法以vwap = []
for i in range(window, int(price_times_qty)):
vol_total = 0
vol_price = 0
for j in range(window):
vol_total = vol_total + lastqty[i-j]
vol_price = vol_price + lastqty[i-j] * lastprice[i-j]
vwap.append( vol_price / vol_total )
。
答案 0 :(得分:3)
render_to_string
需要这些参数template_name
,dictionary
,context_instance
,其中dictionary和context_instance的默认值为None。根据其定义
加载给定的template_name并使用给定的字典呈现它 作为背景。 template_name可以是加载单个字符串的字符串 使用get_template的模板,或者它可能是要使用的元组 select_template查找列表中的一个模板。返回一个 字符串。
只需导入功能:
from django.template.loader import render_to_string
并且在继承自get
的类的DetailView
函数中,只需使用给定的定义格式。
class Test(DetailView):
def get(self, request, *args, **kwargs):
return render_to_string(<template_name>, <dictionary>)
字典作为上下文数据传递给模板。