我想将一些数据库对象导出为JSON。导出格式或多或少与Example.objects.values(*columns)
的格式匹配,除了每个dict还应包含通过调用每个Example.objects.all()
上的方法计算的值,即class Example(Model)
个实例。
如何使用仅一个数据库查询生成合适的字典?
我将两个查询(我当前的解决方案)合并为一个的动机是一致性:我们在默认的“读取提交”级别对着PostgreSQL运行Django,这可能会使我的两个查询返回不一致的数据。 (更好的表现也是一种好处,但不是主要动机。)
我看到两条路:
哪个更好?我应该注意什么?我该怎么做才能正确? Django在幕后做了很多复杂的事情 - 我看到的代码似乎有点复杂,反正 - 所以我不确定:哪条路径最强大?
注意:解决方案需要跨越__
次查找,即我想要{"other_model__pk": 1}
可能是输出。快速测试表明django.forms.models.model_to_dict
不会这样做。