繁体   English   中英

Django JSONField isnull 查找

[英]Django JSONField isnull lookup

据我所知,您不能在 Django 原生JSONField上使用__isnull查找。 在互联网上,我发现了这个无效的问题。 作为可能的解决方法,我们当然可以使用这些黑客:

  1. model.objects.filter(field__contains={'key': None}) ,这不是那么灵活,因为您可能需要查询多个键或其他任何东西。

  2. model.objects.exclude(field__key=True).exclude(field__key=False) ,这是hacky,仅适用于布尔数据。

我希望有更好的方法 ((c) Raymond Hettinger) 来做这件事。 任何建议将不胜感激。 现在,我将采用第一种方法

根据这个(见最后一个,结束评论)以下应该工作model.objects.filter(field__key=None) (但显然你应该使用 Django 版本和 fix )。

Django 文档

警告

由于任何字符串都可能是 JSON 对象中的键,因此除下面列出的那些之外的任何查找都将被解释为键查找。 没有错误被提出。 输入错误时要格外小心,并始终检查您的查询是否按预期工作。

他们在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM