【发布时间】:2019-07-16 15:26:21
【问题描述】:
我使用 Django 2.1 和 PostgreSQL 将 datetime 对象存储在 JSONField 中,但是在查询数据库时我找不到正确反序列化它们的方法:
我尝试使用DjangoJSONEncoder,它可以正常进行序列化。
但是反序列化不能正常工作
class Book(models.Model):
data = JSONField(encoder=DjangoJSONEncoder)
class BookTest(TestCase):
def test_JSONField_deserialize(self):
# record it in PostgreSQL Database :
instance = Book.objects.create(data=
{'date': tz.now()}
)
# Retrieve it from PostgreSQL Database :
result = Book.objects.get(id=instance.id)
# Test the type :
self.assertEqual(type(result.data['date']), datetime)
AssertionError: <class 'str'> != <class 'datetime.datetime'>
我做错了什么?
我需要扩展DjangoJSONEncoder,还是提供.from_db_value() 自定义方法?
【问题讨论】:
标签: django postgresql django-models django-jsonfield