I need to query a model by a JsonField
, I want to get all records that have empty value ([]):
I used MyModel.objects.filter(myjsonfield=[])
but it's not working, it returns 0 result though there's records having myjsonfield=[]
Use the dunder __exact
for this. The __isnull=True
does not work because the JSONField is technically not null.
MyModel entries where myjsonfield
is empty:
MyModel.objects.include(myjsonfield__exact=[])
MyModel entries where myjsonfield
is not empty:
MyModel.objects.exclude(myjsonfield__exact=[])
https://docs.djangoproject.com/en/3.1/ref/models/querysets/#std:fieldlookup-exact
I believe if you've set the default=dict
in your model then you should use {}
(eg: myjsonfield__exact={}
) instead of []
but I haven't tested this.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With