首页 > 解决方案 > 从 Django Query 中提取值的正确方法

问题描述

如何将 Django 查询的结果设置为等于一组新变量?例如,当我在 Django shell 上运行此查询时:

getDefaults = defaultParams.objects.filter(isDefault = True, device = 41)

然后运行:

for val in getDefaults.values():
    print(val)

它返回:

{'id': 2, 'device_id': 41, 'customerTag': 'ABCD001', 'isDefault': True}

我想使用此字典中的值将新记录保存到我的数据库中,但似乎无法从字典中提取值?我认为它会是这样的:

device_id = getDefaults.device_id
NewCustomerTag = getDefaults.customerTag

标签: pythondjango

解决方案


values()显式返回字典列表,因此您需要使用字典语法:val['device_id'].

但在你的情况下,没有理由这样做。完全跳过values调用,您将获得一个 defaultParams 实例,您可以在其上使用普通属性查找:

for val in getDefaults:
    print(val.device_id)

推荐阅读