能够使用值返回嵌套字典? django

时间:2018-08-01 23:46:33

标签: python django dictionary

如果我有一个名为Blog的模型,这就是值的工作方式

>>> Blog.objects.values()
[{'id': 1, 'name': 'Beatles Blog', 'tagline': 'All the latest Beatles news.'}],
>>> Blog.objects.values('id', 'name')
[{'id': 1, 'name': 'Beatles Blog'}]

但是,如果我想将名称改成另一个字典并得到这样的回报

[{'id': 1, 'blog': { 'name': 'Beatles Blog'}}]

以上通过使用值或类似的东西可能吗?

我知道我可以做些可行的事情

[{'id': blog.pk, 'blog': {'name': blog.name}} for blog in blogs]

提前感谢我的好奇心

1 个答案:

答案 0 :(得分:2)

无法使用values

您建议的方法效果很好。

如果模型上有很多额外的字段,并且只需要这两个字段,则性能改进将是首先使用值仅加载所需的字段,然后对它们执行列表推导以按照指定的格式重新格式化。

这避免了不必要地在数据库中查询不需要的字段。