根据django JSONField docs,它解释说该data
结构与python本地格式匹配,查询时的方法略有不同。
如果您知道JSON的结构,则还可以过滤键,就好像它们是相关字段一样:
object.filter(data__animal='cat')
object.filter(data__name='tom')
通过数组访问:
object.filter(data__0__animal='cat')
您的包含示例几乎是正确的,但是您的数据在列表中,并且需要:
object.filter(data__contains=[{'animal': 'cat'}])