首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django -查询结果为'associative‘dict?

Django -查询结果为'associative‘dict?
EN

Stack Overflow用户
提问于 2011-01-24 19:06:46
回答 2查看 12.7K关注 0票数 19

我想知道Django中是否有任何方便的助手可以将查询结果返回为更“可用”的格式,这样我就不必在视图中遍历它们。

我有一个类似这样的查询:

代码语言:javascript
复制
self.filter(key__in=keys).values('key','value')

我想要的是一个看起来像这样的对象

代码语言:javascript
复制
{'some_key':'some value', 'some_other_key':'some_other_value'}

所以在我的模型中,我可以这样做:

代码语言:javascript
复制
settings = Setting.objects.get_keys(['some_setting','some_other_setting'])
print settings.some_setting # returns 'some value'

其中'get_keys‘是运行上述过滤器查询的管理器函数。你知道我该怎么做吗?我不反对在设置管理器中迭代结果,因为我可以将它们存储起来供以后使用。不过,我不太明白如何创建一个“全局”模型变量。

任何帮助都将不胜感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-24 19:26:24

如果您使用values_list而不是values,它将返回一组二元组,然后您可以将其传递给dict()以创建字典:

代码语言:javascript
复制
return dict(self.filter(key__in=keys).values_list('key','value'))
票数 41
EN

Stack Overflow用户

发布于 2011-01-24 19:28:42

我认为您正在寻找的是:http://docs.djangoproject.com/en/stable/ref/models/querysets/#in-bulk这个函数接受主键的列表,并返回映射到这些键的模型的字典。听起来这就是你想要的?

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4781242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档