擅长:python、mysql、java
<p>好的,这似乎是他们出于某种原因在Django3.1.1中引入的一个更改,以修复其他一些bug。它从底层连接中注销<code>jsonb</code>转换器,这在IMO中很糟糕</p>
<p>Django问题:第一个“修复”破坏了这个基本功能,同时拒绝了原始sql的用例,第二个是宣布破坏无效</p>
<ol>
<li><a href="https://code.djangoproject.com/ticket/31956" rel="nofollow noreferrer">QuerySet.order_by() chained with values() crashes on JSONField</a></li>
<li><a href="https://code.djangoproject.com/ticket/31973" rel="nofollow noreferrer">TypeError loading data in JSONField if DB has native JSON support</a></li>
</ol>
<p>要解决这个问题,您可以创建自己的原始游标(django不会使用它),或者在原始sql中强制转换字段。至少,直到他们也打破它</p>
<pre><code>SELECT
data::json, db type is jsonb
other_fields
FROM
table
</code></pre>