Django | 一文搞懂如何遍历.values_list的结果

只有一个变量的情况

如果在使用 .values_list() 方法时只选择了一个字段,那么返回的结果是一个仅含有一个元素的元组列表。此时,你可以选择不进行解构,直接访问列表中的元组对象。

例如,如果我们只取回 MyModelname 字段:

from myapp.models import MyModel

# 取回一个元祖列表,包含 MyModel 的 name 字段值
results = MyModel.objects.values_list('name', flat=True)

# 遍历元祖列表
for name in results:
    # 打印每个 MyModel 对象的 name 值
    print(f"Name: {name}")

在上面的例子中,我们将 .values_list() 方法的关键字参数 flat 设置为 True,这样返回的结果就是一个扁平化的列表。由于我们只选择了一个字段,因此直接遍历列表中的元素即可。

两个变量

和遍历QuerySet对象类似,你可以使用Python内置的迭代方法 for-in 来遍历 .values_list() 方法返回的元素。

当使用 .values_list() 方法时,返回的结果是一个元组的列表。因此,在处理每个元组时,你可以使用元组拆包的方式将其转换为可读性更好的命名变量,并对其进行操作。例如:

from myapp.models import MyModel

# 取回一个元祖列表,包含 MyModel 的 name 和 age 字段值
results = MyModel.objects.values_list('name', 'age')

# 遍历元祖列表
for name, age in results:
    # 打印每个 MyModel 对象的 name 和 age 值
    print(f"Name: {name}, Age: {age}")

在上面的例子中,我们将 .values_list() 方法返回的元组用 nameage 两个变量进行了解构,使代码更具可读性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值