我有一个 JSONField 类型的字段,它基本上包含这个结构:
[{u'date': u'2021-11-24T13:51:47', u'text': u'todayone'},
{u'date': u'2021-11-24T13:52:38', u'text': u'todaytwo'},
{u'date': u'2021-11-24T13:53:26', u'text': u'todaythree'}]
当该字段有超过 600 个条目时,我无法在生产中加载它,但在本地我可以毫无问题地加载它。在生产中,我收到以下错误:
/venv/local/lib/python2.7/site-packages/django/db/models/query.pyc in __iter__(self)
61 related_populators = get_related_populators(klass_info, select, db)
62 for row in compiler.results_iter(results):
---> 63 obj = model_cls.from_db(db, init_list, row[model_fields_start:model_fields_end])
64 if related_populators:
65 for rel_populator in related_populators:
/venv/local/lib/python2.7/site-packages/django/db/models/base.pyc in from_db(cls, db, field_names, values)
581 values.reverse()
582 values = [values.pop() if f.attname in field_names else DEFERRED for f in cls._meta.concrete_fields]
--> 583 new = cls(*values)
584 new._state.adding = False
585 new._state.db = db
/venv/local/lib/python2.7/site-packages/django/db/models/base.pyc in __init__(self, *args, **kwargs)
500 if val is _DEFERRED:
501 continue
--> 502 _setattr(self, field.attname, val)
503 else:
504 # Slower, kwargs-ready version.
/venv/local/lib/python2.7/site-packages/jsonfield/subclassing.pyc in __set__(self, obj, value)
39 # we can definitively tell if a value has already been deserialized
40 # More: https://github.com/bradjasper/django-jsonfield/issues/33
---> 41 obj.__dict__[self.field.name] = self.field.pre_init(value, obj)
42
43
/venv/local/lib/python2.7/site-packages/jsonfield/fields.pyc in pre_init(self, value, obj)
78 return json.loads(value, **self.load_kwargs)
79 except ValueError:
---> 80 raise ValidationError(_("Enter valid JSON"))
81
82 return value
ValidationError: [u'Enter valid JSON']
两种环境都有以下设置:
Python version: 2.7.11
Django version: 1.11.29
Json packages:
jsonfield==1.0.1
jsonschema==3.2.0
simplejson==3.6.5
我在服务器中看不到任何内存问题。