【发布时间】:2018-06-16 11:15:52
【问题描述】:
我有一个带有 JSONField(仅限 Postgres 字段)的模型:
models.py:
from django.db import models
from django.contrib.postgres.fields import JSONField
class Mod(models.Model):
data = JSONField(default={ 'name':'Model' })
所以我创建了 2 个模型 - ./manage.py shell:
>>> from m3d.models import Mod
>>> m1 = Mod()
>>> m1.save()
>>> m2 = Mod()
>>> m2.data['name'] = 'Model 2'
>>> m2.save()
但它们具有相同的data['name'] 值:
>>> m1.data['name']
'Model 2'
>>> m2.data['name']
'Model 2'
请注意,数据库中的值不同:
>>> m1a = Mod.objects.get(pk=m1.pk) # get m1 data from db
>>> m1a.data['name']
'Model'
>>> m2.data['name']
'Model 2'
但变量m1 的值仍然是Model 2。
我错过了什么吗?这是我需要解决的某种行为吗?
仅供参考:使用 Django 2.0.1
【问题讨论】:
标签: django postgresql django-models django-postgresql django-jsonfield