2017-07-04 213 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查詢,並將其放入自定義過濾器中。