我需要通过 JsonField 查询模型,我想获取所有具有空值 ([]) 的记录:

我使用了 MyModel.objects.filter(myjsonfield=[]) 但它不起作用,虽然有 myjsonfield=[] 的记录,但它返回 0 结果

最佳答案

为此使用 dunder __exact__isnull=True 不起作用,因为 JSONField 在技术上不为空。
MyModel 条目,其中 myjsonfield 为空:MyModel.objects.include(myjsonfield__exact=[]) MyModel 条目,其中 myjsonfield 不为空:MyModel.objects.exclude(myjsonfield__exact=[]) https://docs.djangoproject.com/en/3.1/ref/models/querysets/#std:fieldlookup-exact
我相信如果你已经在你的模型中设置了 default=dict 那么你应该使用 {} (例如: myjsonfield__exact={} )而不是 [] 但我还没有测试过这个。

关于python - 通过 Django 中的空 JsonField 查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31305340/

10-12 21:44