必须使用ChartData实例作为第一个参数调用未绑定方法check_heater_data()(没有任何内容)

时间:2016-04-06 16:50:22

标签: python django

有人可以告诉我在从python脚本调用一些数据到Django视图时我做错了什么。目前我在标题中收到错误。我的相关代码如下:

#views.py

def highcharts(request, chartID = 'chart_ID', chart_type = 'line', chart_height = 500):
    data = ChartData.check_heater_data()
    #rest of the code ...

和python脚本:

from .models import Heater
class ChartData(object):    
    def check_heater_data(self):
        data = {'id': [], 'temperature_max': [],
             'temperature_min': []}

        valves = Heater.objects.all()

        for unit in valves:
            data['id'].append(unit.id)
            data['temperature_max'].append(unit.temperature_max)
            data['temperature_min'].append(unit.temperature_min)

        return data   

基本上我在这里想要实现的是从MySQL获取数据并将其附加到字典中。之后我想在highcharts中使用这个字典来显示我的数据。

1 个答案:

答案 0 :(得分:2)

您需要实例化 ChartData才能使用其方法:

def highcharts(...):
    instance = ChartData() # creates an instance
    data = instance.check_heater_data() # now you can call this

或者,您可以将check_heater_data()声明为类方法(可以在不创建实例的情况下访问的方法),然后您可以在不实例化的情况下调用check_heater_data()

class ChartData(object): 
    @classmethod   
    def check_heater_data(self):
        ...

可让您ChartData.check_heater_data()毫无问题。

如果您想要最小更改并且不想要创建对象实例的开销,请转到第二种方法。

相关问题