Python 如何从ValuesQuerySet中获取值
我试图用下面的代码行从Django应用程序中的数据库中提取一些数据。Job是我的模型的名称,jobIDs[i]表示正在操作的记录的idPython 如何从ValuesQuerySet中获取值,python,django,dictionary,typeerror,Python,Django,Dictionary,Typeerror,我试图用下面的代码行从Django应用程序中的数据库中提取一些数据。Job是我的模型的名称,jobIDs[i]表示正在操作的记录的id timeToRun = Job.objects.filter(id=jobIDs[i]).values()['whenToRun'].split(' ')[0] 当我到达['whentrun']时,我得到一个TypeError()。我是否误解了如何在这种情况下获取价值观 编辑:为了澄清,.values()返回一个ValuesQuerySet可能这就是您要查找的
timeToRun = Job.objects.filter(id=jobIDs[i]).values()['whenToRun'].split(' ')[0]
当我到达['whentrun']时,我得到一个TypeError()。我是否误解了如何在这种情况下获取价值观
编辑:为了澄清,.values()返回一个ValuesQuerySet可能这就是您要查找的:
timeToRun = Job.objects.filter(id=jobIDs[i]).values()[0]['whenToRun'].split(' ')[0]
从values()
是ValueQuerySet
(queryset对象列表)
现在,如果Job.objects.filter(id=jobIDs[i])
返回空的queryset,它将抛出一个错误,因此我将执行以下操作:
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]
也许这就是你想要的:
timeToRun = Job.objects.filter(id=jobIDs[i]).values()[0]['whenToRun'].split(' ')[0]
从values()
是ValueQuerySet
(queryset对象列表)
现在,如果Job.objects.filter(id=jobIDs[i])
返回空的queryset,它将抛出一个错误,因此我将执行以下操作:
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]
可能您拼写错误了
filter
,第二个返回一个模型,第一个返回valueQuerySet。filter应该只返回一个模型,values()是我尝试从记录的各个列中提取值(特别是在运行时)。还有别的办法吗?我已经一遍又一遍地检查了这段代码,我不认为有任何拼写错误。get
是只获取一个模型的方法,那么,您不需要将[0]
附加为@karthikr purpose。也许您拼写错误了过滤器,get
,第二个返回一个模型,第一个返回valueQuerySet.filter应该只返回一个模型,values()是我尝试从记录的各个列中提取值(特别是在运行时)。还有别的办法吗?我已经一遍又一遍地检查了这个代码,我不认为有任何拼写错误。get
是只获取一个模型的方法,那么,您不需要将[0]
附加为@karthikr purpose。