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
仅获取PK值,并从django表返回_Django_Data Extraction - Fatal编程技术网

仅获取PK值,并从django表返回

仅获取PK值,并从django表返回,django,data-extraction,Django,Data Extraction,我想搜索Tld表,只获取Tld对象的主键值 我有执行查询以提取整行的代码,但我只希望PK值与查询匹配: Model.objects.filter(d=bu) 在纯sql中,我尝试: SELECT id from Model where d=<buv> 从模型中选择id,其中d= 如何才能做到这一点?我想您可能正在寻找: Tld.objects.filter(d=base_url).values_list('id', flat=True) 我不确定我是否理解你的问题,但是为什么

我想搜索
Tld
表,只获取
Tld
对象的主键值

我有执行查询以提取整行的代码,但我只希望PK值与查询匹配:

Model.objects.filter(d=bu)
在纯sql中,我尝试:

SELECT id from Model where d=<buv>
从模型中选择id,其中d=

如何才能做到这一点?

我想您可能正在寻找:

Tld.objects.filter(d=base_url).values_list('id', flat=True)

我不确定我是否理解你的问题,但是为什么你没有使用像
my_query=Tld.objects.get(pk=1)
这样的查询,因为
d
字段是基于
base\u url
搜索的,请参见更新的普通sql,了解我试图做的事情。你可以使用
方法从表中获取特定列
Tld.objects.filter(d=base\u url)。仅('id')
当您不需要某个特定列时,可以使用
defer
方法
Tld.objects.filter(d=base\u url).defer('name')
有关详细信息,请参阅他们的文档。谢谢@SK.FazleeRabby!你能解释一下在普通sql术语中这是怎么做的吗?
从TLD where TLD.d=
中选择TLD.id,你可以通过打印
QuerySet
.query
属性的值来查看。这在性能方面与
相比如何。仅('id')
?您知道底层SQL看起来完全相同,但是
.values\u list
返回一个列表,而
.only
返回一个
QuerySet
,当您使用它做一些事情时,它将得到评估。我想您需要测量以确定两者之间的任何性能差异。谢谢@Will-只是想知道是否可以将我选择的任何方法重写为字符串?
values\u list()
在Django 2中有效吗?最后的问题。谢谢