Django json 字段,是否可以使用 json 数组值长度进行过滤?

Django jsonfield, is it possible to filter with json array value length?

假设我有一个带有数据的 jsonfield

from django.contrib.postgres.fields import JSONField

class Foo(models.Model):
   json_field = JSONField(default=dict)

json_field = {
  'bar': [1,2,3,4]
}

我想过滤 bar 数组长度大于 3

的数据

类似下面的内容,Foo.objects.filter(json_field__bar__length__gt=3)

你可以试试这个:

在模型中再创建一个字段,即 json_field_bar_length

class Foo(models.Model):
    ....
    json_field_bar_length = models.IntegerField(default=0)

并在保存json_field时输入json_field['bar']的长度,检查长度是否大于。