在 Django 中将 QuerySet 转换为 JSON
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在 Django 中将 QuerySet 转换为 JSON相关的知识,希望对你有一定的参考价值。
参考技术A 1、在类中自定义装换2、[使用 Django 的内置序列化程序将 QuerySet 转换为 JSON ]
3、使用values()
Django - 如何将 QuerySet 转换为 Q 对象?
【中文标题】Django - 如何将 QuerySet 转换为 Q 对象?【英文标题】:Django - How to transform a QuerySet to a Q object? 【发布时间】:2011-03-14 01:27:59 【问题描述】:有没有办法在 django 中将 QuerySet 转换为 Q 对象?
我的具体动机:我想从另一个 QuerySet (qs_B) 中减去一个 QuerySet (qs_A)。我能想到的唯一方法是使用 exclude() 和等效于 qs_A 的 Q 对象。
例子:
def my_function(qs_A, qs_B):
# Here I need to transform qs_A to a Q object q_obj_A
qs_new = qs.exclude(q_obj_A)
return qs_new
【问题讨论】:
【参考方案1】:您不需要 Q 对象。只需排除第二个查询集:
qs = qs_a.exclude(id__in=qs_B)
【讨论】:
这很简单并且可以工作,但我怀疑至少在许多情况下,它的效率较低且数据库密集度更高,至少在许多情况下,比实际拥有一个表示简单条件的 Q 对象。 过早的优化是万恶之源。或者至少,不好。 @Matthew - 你的意思是说 django 是一个不成熟的 web 框架?!或者你的意思是我的项目还为时过早?! @Daniel - 我想你的答案是否定的,没有办法将 QuerySet 转换为 Q 对象。您能否确认一下,以便我接受这个答案? 我不知道。它们是根本不同的东西。以上是关于在 Django 中将 QuerySet 转换为 JSON的主要内容,如果未能解决你的问题,请参考以下文章
在 Django 1.11 中将 QuerySet 传递给 Celery 任务
Django:将带有相关对象的 QuerySet 转换为 JSON