django_filter 的 values/values_list区别

django_filter 的 values/values_list

values

"""
django.db.models.query.QuerySet 
def values(self,
           *fields: Any,
           **expressions: Any) -> Union[QuerySet, QuerySet]
"""
test_infos = Test.objects.filter().values()
# 返回全部列数据
<QuerySet [{'id': '4820b1d61c762c74bfd67fb9a7c5cd1e', 'name': 'zhang-123'}, {'id': 'f7505f34c39d1874b12cafbd5d9efce0', 'name': 'zhang-123456'}]>
# Test.objects.filter().values("id")
# 返回指定列数据
<QuerySet [{'id': '4820b1d61c762c74bfd67fb9a7c5cd1e'}, {'id': 'f7505f34c39d1874b12cafbd5d9efce0'}]>
# 注意:返回结果可以直接做字典使用
for test_info in test_infos:
    id_ = test_info["id"]
    name = test_info["name"]

values_list

"""
django.db.models.query.QuerySet 
def values_list(self,
                *fields: Any,
                flat: bool = False,
                named: bool = False) -> Union[QuerySet, QuerySet]
"""
test_infos = Test.objects.filter().values_list()
# 返回全部列数据
<QuerySet [('4820b1d61c762c74bfd67fb9a7c5cd1e', 'zhang-123'), ('f7505f34c39d1874b12cafbd5d9efce0', 'zhang-123456')]>
test_infos = Test.objects.filter().values_list("id")
# 返回指定列数据
<QuerySet [('4820b1d61c762c74bfd67fb9a7c5cd1e',), ('f7505f34c39d1874b12cafbd5d9efce0',)]>
# 参数 flat=True
test_infos = Test.objects.filter().values_list("id", flat=True)
# 返回指定列数据
<QuerySet ['4820b1d61c762c74bfd67fb9a7c5cd1e', 'f7505f34c39d1874b12cafbd5d9efce0']>
# 注意:values_list 返回多个字段时,flat=True 会发生异常
# 返回结果可以直接 list
# 如:test_infos = list(test_infos)

总结

values方法可以获取number字段的字典列表。
values_list可以获取number的元组列表。
values_list方法加个参数flat=True可以获取number的值列表。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值