假设我有一个名为 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]
提前感谢我的好奇心
请您参考如下方法:
使用 values 是不可能的。
您建议的方法效果很好。
如果您的模型中有很多额外的字段,并且只需要这两个字段,则性能改进是首先使用值仅加载您需要的字段,然后对它们执行列表理解以按照您指定的方式重新格式化它.
这避免了不必要地查询数据库中不需要的字段。
