如果我有一个名为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]
提前感谢我的好奇心
答案 0 :(得分:2)
无法使用values
。
您建议的方法效果很好。
如果模型上有很多额外的字段,并且只需要这两个字段,则性能改进将是首先使用值仅加载所需的字段,然后对它们执行列表推导以按照指定的格式重新格式化。
这避免了不必要地在数据库中查询不需要的字段。