擅长:python、mysql、java
<p>根据<a href="https://code.djangoproject.com/ticket/29548" rel="nofollow noreferrer">this ticket</a>的说法,django并不正式支持MariaDB。大部分功能显然都存在,但在确定版本或区分MySQL和MariaDB方面似乎有一些困难。我猜你看到的错误与此有关。在</p>
<p>也就是说,取决于你想做什么,<code>difference</code>实际上可能不是你问题的“自然解决方案”。如果(我怀疑)两个查询集实际上在同一个模型上,那么最简单的方法就是使用<a href="https://docs.djangoproject.com/en/2.0/ref/models/querysets/#exclude" rel="nofollow noreferrer">^{<cd2>}</a>。大致如下:</p>
<pre><code>bigger_qs.exclude(id__in=smaller_qs)
</code></pre>
<p>这不会产生相同的SQL(<code>difference</code>使用<code>EXCEPT</code>,而{<cd2>}使用{<cd6>}),它应该产生相同的结果集(可能以不同的顺序)。在</p>