必须使用ChartData实例作为第一个参数调用unbound方法check\u\u data()(改为不获取任何内容)

2024-04-18 13:20:31 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能告诉我在从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获取数据并将其附加到字典中。之后我想用这本字典在图表中显示我的数据。你知道吗


Tags: 数据脚本iddatadefcheckchartunit
1条回答
网友
1楼 · 发布于 2024-04-18 13:20:31

在使用其方法之前,需要实例化:

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()没有问题。你知道吗

如果您想要最小的更改,并且不想要创建对象实例的开销,请使用第二种方法。你知道吗

相关问题 更多 >