2017-08-03 38 views
0
  • 的PostgreSQL 9.4.12
  • 的Django 1.10.7

有了這個最小的類:Django的+ PostgreSQL的:JSONField的數據庫表示正在改變

from django.contrib.postgres.fields import JSONField 

class Foobar(models.Model): 
    extra_data = JSONField(blank=True, default="") 

我跑manage.py shell_plus

In [2]: a=Foobar.objects.create() 

In [3]: a.extra_data={} 

In [4]: a.save() 

In [6]: a.extra_data 
Out[6]: {} 

In [7]: a.refresh_from_db() 

In [8]: a.extra_data 
Out[8]: '{}' 

In [9]: a.save() 

In [10]: a.refresh_from_db() 

In [11]: a.extra_data 
Out[11]: '"{}"' 

什麼可能是JSONField值在每個數據庫保存時引用的原因?

+0

不知道,但你是一個python對象分配給JSONField,我想這被認爲是一個字符串。嘗試先將python對象轉換爲json對象。 – dentemm

回答