这个最小的课程:
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 :(得分:0)
找到它。这是django-jsonfield
和django.contrib.postgres.fields.JSONField
之间的已知不兼容性,不能在同一项目中使用
cf https://bitbucket.org/schinckel/django-jsonfield/issues/57/cannot-use-in-the-same-project-as-djangos