Django:在基于类的视图上使用render_to_string()

时间:2015-07-28 14:48:44

标签: django django-views

我使用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 )

1 个答案:

答案 0 :(得分:3)

render_to_string需要这些参数template_namedictionarycontext_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>)

字典作为上下文数据传递给模板。