Django + PostgreSQL:JSONField的数据库表示正在发生变化

时间:2017-08-03 15:35:43

标签: python django postgresql

  • PostgreSQL 9.4.12
  • Django 1.10.7

这个最小的课程:

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值的原因是什么?

1 个答案:

答案 0 :(得分:0)

找到它。这是django-jsonfielddjango.contrib.postgres.fields.JSONField之间的已知不兼容性,不能在同一项目中使用 cf https://bitbucket.org/schinckel/django-jsonfield/issues/57/cannot-use-in-the-same-project-as-djangos