仅获取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中有效吗?最后的问题。谢谢