Python Django使用.value筛选数据库并调用外键

Python Django使用.value筛选数据库并调用外键,python,django,Python,Django,我再次请求你的帮助。我想从数据库返回Json格式的数据,我需要3个值温度、日期和传感器。说明。几乎没有问题,我可以查询并获得“温度”和“日期”,但我很难获得传感器描述。这给了我温度和日期 sen = S280000020E3120.objects.filter(date__range=[dateo, datee]).values('date', 'temperature') 这将返回描述 desc = S280000020E3120.objects.filter(date__range=[da

我再次请求你的帮助。我想从数据库返回Json格式的数据,我需要3个值
温度、日期和传感器。说明
。几乎没有问题,我可以查询并获得“温度”和“日期”,但我很难获得传感器描述。这给了我温度和日期

sen = S280000020E3120.objects.filter(date__range=[dateo, datee]).values('date', 'temperature')
这将返回描述

desc = S280000020E3120.objects.filter(date__range=[dateo, datee]).last().sensor.description
如果我想从中返回json,我必须执行
sen=list(sen)
但是当我试图通过
result=sen.append(desc)
desc
附加到
sen
时,我得到了一个错误

非类型对象不可编辑

有可能得到类似格式的结果吗

{
    "ds": [
              {"date": "2020-06-19T16:23:16", "temperature": "27.4"}, 
              {"date": "2020-06-19T16:26:24", "temperature": "27.4"}, 
              {..rest of data..}, 
              sensor.description
          ]
}
我的观点.py

def chartData(request):
    fixm = datetime.min.time()
    fixd = datetime.max.time()
    dateo = '2020-06-19'
    datee = '2020-6-20'
    dateo = datetime.strptime(dateo, '%Y-%m-%d')
    datee = datetime.strptime(datee, '%Y-%m-%d')
    dateo = datetime.combine(dateo, fixm)
    datee = datetime.combine(datee, fixd)
    sen = S280000020E3120.objects.filter(date__range=[dateo, datee])

    #date = sen.values('date', )
    value = sen.values('date', 'temperature')
    lvalue=list(value)
    senName = sen.last().sensor.sensor_name
    #lvalue = lvalue.append(senName)
    result = {
            'ds': list(lvalue),
            }
    return JsonResponse(result, safe=False)
models.py

class S280000020E3120(models.Model):
    sensor = models.ForeignKey('Sensors', models.DO_NOTHING)
    temprature = models.DecimalField(max_digits=4, decimal_places=1)
    date = models.DateTimeField()

    class Meta:
        managed = False
        db_table = '28-0000020e3120'

class Sensors(models.Model):
    sensor_name = models.CharField(max_length=20)
    description = models.CharField(max_length=255, blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'sensors'
我得到的输出

{"ds": [{"date": "2020-06-19T16:23:16", "temperature": "27.4"}, {"date": "2020-06-19T16:26:24", "temperature": "27.4"}, {...}]}
我想要的输出或类似的东西,当我可以很容易地得到描述时,因为我希望这些数据将是带有char.js的图形或其他东西

{"ds": [{"date": "2020-06-19T16:23:16", "temperature": "27.4"}, {"date": "2020-06-19T16:26:24", "temperature": "27.4"}, , {...},sensor.description]}

在本例中,我只查询了一个表,但最后我需要从其中的8个表中获取数据,如果这使它有所不同。

我不知道您的传感器模型是什么样子,但一般来说,这应该可以做到:

sen = S280000020E3120.objects.filter(date__range=[dateo, datee]).values('date','temperature','sensor__description')

这里也可以使用Djangos字段查找语法。请参阅:

I updated models.py,但您的解决方案正是我所需要的。非常感谢。