我将datetime
对象存储在JSONField
Django 2.1和 PostgreSQL 中,但在查询数据库时找不到正确反序列化它们的方法:
我尝试使用DjangoJSONEncoder
which 可以正常进行序列化。但是反序列化不能正常工作
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()
自定义方法吗?