2017-07-04 87 views
0

版本,我用:过滤JSON数据

psycopg2==2.6.2 
django=1.10.5 
postgres=9.3 

我想要JSON数据存储使用Django的数据库,但我不能使用JSONField(),因为它需要jsonb类型,只有在存在PostgreSQL> = 9.4。

Django的我的模型如下:

class Inspection(models.Model): 
    data = models.TextField(null=False, blank=False) 

在现场data我想要存储JSON数据。

的数据如下:

记录1:

{ 
    "url": "some_url", 
    "user": [ 
    { 
     "id": "1", 
     "email": "[email protected]", 
     "first_name": "My_First_Name", 
     "last_name": "My_Last_Name" 
    } 
    ] 
} 

RECORD2

{ 
     "url": "some_url", 
     "user": [ 
     { 
      "id": "2", 
      "email": "[email protected]", 
      "first_name": "My_First_Name_2", 
      "last_name": "My_Last_Name_2" 
     } 
     ] 
    } 

能否在user id过滤器?

+0

你的意思是这个[jsonfield](https://github.com/dmkoch/django-jsonfield)? – gorros

回答

1
id = 1 
Inspection.objects.filter(data__icontains='"id": "{}"'.format(id)) 

请尝试以上操作并在冒号(:)符号后面使用空格。

0

你可以实现你自己的过滤器。看看this文章。您可以直接编写SQL查询,并将其放入自定义过滤器中。