val*_*tev 7 python django postgresql json django-jsonfield
据我所知,你不能__isnull
在django native上使用查找JSONField
.在互联网上,我发现这个不活跃的问题.作为可能的解决方法,我们当然可以使用这些黑客:
model.objects.filter(field__contains={'key': None})
,这可能不是那么灵活,因为您可能需要查询多个键或其他任何内容.
model.objects.exclude(field__key=True).exclude(field__key=False)
,这是hacky,仅适用于布尔数据.
我希望有更好的方法((c)Raymond Hettinger)这样做.任何建议将不胜感激.现在,我将采用第一种方法
根据此https://code.djangoproject.com/ticket/25718(请参阅最后一个结束语),以下内容应该可以工作 model.objects.filter(field__key=None)
(但显然,您应该将Django版本与fix一起使用)。
django文档https://docs.djangoproject.com/zh-CN/2.0/ref/contrib/postgres/fields/#querying-jsonfield
警告
由于任何字符串都可能是JSON对象中的键,因此以下列出以外的任何查找都将被解释为键查找。没有错误。输入错误时要格外小心,并始终按预期检查查询的工作。
这里是https://docs.djangoproject.com/en/2.0/ref/contrib/postgres/fields/#containment-and-key-operations
归档时间: |
|
查看次数: |
974 次 |
最近记录: |