我试图得到两个查询集之间的差异,对我来说,这个差异的答案是一个查询集是很重要的。差分法是自然求异法。但是,当我尝试这样做时,我得到了以下错误:
NotSupportedError: difference is not supported on this database backend.
我要做的是:
In [4]: type(small_qs)
Out[4]: django.db.models.query.QuerySet
In [5]: type(bigger_qs)
Out[5]: django.db.models.query.QuerySet
In [6]: bigger_qs.difference(small_qs)
重要提示:两个查询集来自同一型号。
其他可用信息:
这里是完整的输出:
^{pr2}$如果需要更多的数据,请告诉我。在
根据this ticket的说法,django并不正式支持MariaDB。大部分功能显然都存在,但在确定版本或区分MySQL和MariaDB方面似乎有一些困难。我猜你看到的错误与此有关。在
也就是说,取决于你想做什么,} 。大致如下:
difference
实际上可能不是你问题的“自然解决方案”。如果(我怀疑)两个查询集实际上在同一个模型上,那么最简单的方法就是使用^{这不会产生相同的SQL(}使用{}),它应该产生相同的结果集(可能以不同的顺序)。在
difference
使用EXCEPT
,而{此代码可能有助于:
相关问题 更多 >
编程相关推荐