Django,JSONField,非空列表过滤器

eug*_*ene 6 django postgresql

我有一个 jsonfield

foo = JSONField(default=list)
Run Code Online (Sandbox Code Playgroud)

我想过滤查询集,以便 foo 有一些数据(不是空列表)

我试过了

MyModel.objects.filter(foo__ne=[])  # doesn't seem to work
MyModel.objects.filter(foo__gt=[])  # seems to work but can't be sure if it's the right approach
Run Code Online (Sandbox Code Playgroud)

小智 5

MyModel.objects.exclude(foo=[]))
Run Code Online (Sandbox Code Playgroud)


Ant*_*ard 3

您应该能够通过使用Q对象否定相等性来测试不平等性。

from django.db.models import Q

MyModel.objects.filter(~Q(foo=[]))
Run Code Online (Sandbox Code Playgroud)

  • 这似乎相当于“MyModel.objects.exclude(foo=[])”,对吗?请参阅/sf/answers/3447264621/ (3认同)