Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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
django-删除字段名和括号_Django - Fatal编程技术网

django-删除字段名和括号

django-删除字段名和括号,django,Django,我有以下查询集- pk = Jobmst.objects.db_manager('database1').extra(where=['jobmst_alias=%s'], params=[alias]).values('jobmst_id') 其中返回以下内容— [{'jobmst_id': 21195}] [21195] 编辑- pk = Jobmst.objects.db_manager('database1').extra(where=['jobmst_alias=%s'], par

我有以下查询集-

pk = Jobmst.objects.db_manager('database1').extra(where=['jobmst_alias=%s'], params=[alias]).values('jobmst_id')
其中返回以下内容—

[{'jobmst_id': 21195}]
[21195]
编辑-

pk = Jobmst.objects.db_manager('database1').extra(where=['jobmst_alias=%s'], params=[alias]).values_list('jobmst_id', flat=True)
返回以下内容-

[{'jobmst_id': 21195}]
[21195]
关闭,但我不想要括号,我只想要整数

我希望它只给我一个整数值,这样我就可以在另一个查询中调用它-

mst = Jobmst.objects.db_manager('database1').raw("""
    SELECT jobmst_id, jobmst_type, jobmst_prntname AS jobmst_prntid, jobmst_active,
    evntmst_id, jobmst_evntoffset, jobmst_name, jobmst_mode, jobmst_owner, jobmst_desc,
    jobmst_crttm, jobdtl_id, jobmst_lstchgtm, jobmst_runbook, jobcls_id, jobmst_prntname,
    jobmst_alias, jobmst_dirty FROM Jobmst WHERE jobmst_id = %s""", [pk])
理想情况下,可以这样分析:

mst = Jobmst.objects.db_manager('database1').raw("""
    SELECT jobmst_id, jobmst_type, jobmst_prntname AS jobmst_prntid, jobmst_active,
    evntmst_id, jobmst_evntoffset, jobmst_name, jobmst_mode, jobmst_owner, jobmst_desc,
    jobmst_crttm, jobdtl_id, jobmst_lstchgtm, jobmst_runbook, jobcls_id, jobmst_prntname,
    jobmst_alias, jobmst_dirty FROM Jobmst WHERE jobmst_id = 21195""")

values
返回DICT列表,因此您可以通过列表索引和键名访问值:

try:
    pk = Jobmst.objects.db_manager('database1').extra(where=['jobmst_alias=%s'],
        params=[alias]).values('jobmst_id')[0]['jobmst_id']
except IndexError:
    pk = None
您可以使用只返回指定字段值列表的
值\u list
,并访问只需要索引的值:

try:
    pk = Jobmst.objects.db_manager('database1').extra(where=['jobmst_alias=%s'],
        params=[alias]).values_list('jobmst_id', flat=True)[0]
except IndexError:
    pk = None

怎么样
qs.values\u list('jobmst\u id',flat=True)
?太接近了!它返回的值是[21195]在我的查询中,这些方括号正在终止它。我想在其中运行它。如果返回值是空列表,您可能希望将第二个示例放在try/except索引器代码块中,以避免出现运行时错误。@JeffBauer try/except是必需的,我同意第一个示例这样做了,谢谢!我假设任何我想返回的字段都是这样。值('field')[0]['field']