Django CBV:get()和get_context_data()

时间:2018-10-03 08:30:37

标签: django

我想获得有关import numpy as np import pandas as pd df = pd.DataFrame({ "A":[0,0,0,0,0,1,2,2,3,3,3], "B":[0,1,2,0,1,2,0,2,0,1,1], "C":[.654,.123,1.45,6.1,0.322,1.77,9.234,2.54,1,6.77,6.438]}) grouped = df.groupby(["A","B"]).agg("mean") # how to transform grouped into res? res = pd.DataFrame({ "A":[0,1,2,3], "C0":[3.377,np.nan,9.234,1], "C1":[0.2225,np.nan,np.nan,6.604], "C2":[1.45,1.77,2.54,np.nan]}) get()类的一些指标,因为遇到了一个问题,并且试图理解原因。

我有一个get_context_data(),可以显示带有多个查询集的一些统计信息。在同一课程中,我有一个Django DetailView,它显示了来自get queryset的结果。

我的代码如下:

query string

像这样,class StatsView(DetailView): """ Create statistics pageview """ template_name = 'app/stats.html' def get(self, request): return render(request, self.template_name, context) def set_if_not_none(self, mapping, key, value): if value is not None: if len(value) != 0: mapping[key] = value def get_context_data(self, **kwargs): return context_data 函数不起作用,但是当我在注释中设置get_context_data()时,它可以正常工作。我认为自己有一个小误会。

也许我没有使用好的django通用显示视图,或者不可能在同一个类中一起使用get()get()

谢谢

我阅读了Django文档,但我想从您那里获得解释

编辑:

我正在尝试将查询集从get_context_data()方法传递到get()。然后,我删除了get_context_data()方法,将get()更改为DetailView,它仅适用于TemplateView。但是,如何在没有get_context_data()方法的情况下添加“骨架”呢?

1 个答案:

答案 0 :(得分:1)

  

我正在尝试将查询集从get()方法传递给get_context_data()


class StatsView(DetailView):
    """ Create statistics pageview """
    template_name = 'app/stats.html'

    def get(self, request, *args, **kwargs):
        queryset = SampleModel.objects.all()
        return render(request, self.template_name, context=self.get_context_data(queryset=queryset))

    def set_if_not_none(self, mapping, key, value):
        if value is not None:
            if len(value) != 0:
                mapping[key] = value

    def get_context_data(self, **kwargs):
        qs = kwargs.get('queryset')
        # do something


如果您要覆盖的 get_context_data() 方法,建议将super()方法称为

class StatsView(DetailView):
    # your code

    def get_context_data(self, **kwargs):
        data = super(StatsView, self).get_context_data(**kwargs)
        data.update({"foo": "bar"})
        return data

  

我想获得有关 get() get_context_data()

的一些指标

When to use get, get_queryset, get_context_data in Django?

在这里已经很好回答了