【问题标题】:Django - Query results as 'associative' dict?Django - 将结果查询为“关联”字典?
【发布时间】:2011-06-14 10:52:22
【问题描述】:

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

我有一个这样的查询:

self.filter(key__in=keys).values('key','value')

我最终想要的是一个看起来像的对象

{'some_key':'some value', 'some_other_key':'some_other_value'}

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

settings = Setting.objects.get_keys(['some_setting','some_other_setting'])
print settings.some_setting # returns 'some value'

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

任何帮助将不胜感激!

【问题讨论】:

    标签: django django-models


    【解决方案1】:

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

    return dict(self.filter(key__in=keys).values_list('key','value'))
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • @tufelkinder 您也可以链接到/stable/ 而不是特定版本号,以始终指向最新稳定版本的文档
      猜你喜欢
      • 2010-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-04
      • 1970-01-01
      • 1970-01-01
      • 2016-03-06
      相关资源
      最近更新 更多