我需要通过 a 查询模型JsonField,我想获取所有具有空值([])的记录:
我用过MyModel.objects.filter(myjsonfield=[]),但它不工作,它返回 0 结果虽然有记录myjsonfield=[]
我需要通过 a 查询模型JsonField,我想获取所有具有空值([])的记录:
我用过MyModel.objects.filter(myjsonfield=[]),但它不工作,它返回 0 结果虽然有记录myjsonfield=[]
__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={}而不是[]但我没有测试过这个。
JSONfield 应该是default={}一个字典,而不是一个列表。
试试MyModel.objects.filter(myjsonfield='[]')。