6

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

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

4

3 回答 3

4

__exact为此使用dunder 。__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={}而不是[]但我没有测试过这个。

于 2021-03-04T22:20:16.853 回答
0

JSONfield 应该是default={}一个字典,而不是一个列表。

于 2016-06-01T21:11:34.017 回答
-1

试试MyModel.objects.filter(myjsonfield='[]')

于 2015-07-08T23:40:38.487 回答