我正在尝试使用以下代码行从我的Django应用程序中的数据库中提取一些数据。 Job是我的模型的名称,jobIDs [i]表示正在操作的记录的id。
timeToRun = Job.objects.filter(id=jobIDs[i]).values()['whenToRun'].split(' ')[0]
当我到['whenToRun']时,我得到一个TypeError()。我是否误解了如何在这种字典中访问价值观?
编辑:为了澄清,.values()返回一个ValuesQuerySet
答案 0 :(得分:1)
这可能就是你要找的东西:
timeToRun = Job.objects.filter(id=jobIDs[i]).values()[0]['whenToRun'].split(' ')[0]
来自documentation values()
是ValueQuerySet
(查询集对象列表)
现在,如果Job.objects.filter(id=jobIDs[i])
返回空的查询集,则会抛出错误,所以我会这样做:
if Job.objects.filter(id=jobIDs[i]).exists(): #a quick lookup
timeToRun = Job.objects.filter(id=jobIDs[i]).values()[0]['whenToRun'].split(' ')[0]
另一个优化级别:
if Job.objects.filter(id=jobIDs[i]).exists(): #a quick lookup
timeToRun = list(Job.objects.filter(id=jobIDs[i]).values_list('whenToRun', flat=True))[0].split(' ')[0]