我正在使用{strong> 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()
自定义方法?