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']
的长度,检查长度是否大于。
假设我有一个带有数据的 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']
的长度,检查长度是否大于。