Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从ValuesQuerySet中获取值_Python_Django_Dictionary_Typeerror - Fatal编程技术网

Python 如何从ValuesQuerySet中获取值

Python 如何从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可能这就是您要查找的

我试图用下面的代码行从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()[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。