如何从单个Django查询中获取对象和值()?

时间:2014-08-28 10:13:51

标签: database django django-models atomicity transaction-isolation

我想将一些数据库对象导出为JSON。导出格式或多或少与Example.objects.values(*columns)的格式匹配,除了每个dict还应包含通过调用每个Example.objects.all()上的方法计算的值,即class Example(Model)个实例。

如何使用仅一个数据库查询生成合适的字典?

我将两个查询(我当前的解决方案)合并为一个的动机是一致性:我们在默认的“读取提交”级别对着PostgreSQL运行Django,这可能会使我的两个查询返回不一致的数据。 (更好的表现也是一种好处,但不是主要动机。)

我看到两条路:

  1. 查询对象并将对象转换为我的python代码中的字典。
  2. 查询字典并将字典转换为我的python代码中的对象。
  3. 哪个更好?我应该注意什么?我该怎么做才能正确? Django在幕后做了很多复杂的事情 - 我看到的代码似乎有点复杂,反正 - 所以我不确定:哪条路径最强大?

    注意:解决方案需要跨越__次查找,即我想要{"other_model__pk": 1}可能是输出。快速测试表明django.forms.models.model_to_dict不会这样做。

0 个答案:

没有答案