我使用的是JSONField,为了正确序列化UUID,我使用的是DjangoJSONEncoder类:
from uuid import uuid4
from django.core.serializers.json import DjangoJSONEncoder
from .models import JsonTestModel
sample_uuid = uuid4()
encoder = DjangoJSONEncoder()
encoded_uuid = encoder.encode(sample_uuid)
test = JsonTestModel.objects.create(extra_data={"encoded_uuid":encoded_uuid})
当我访问test.extra_数据时,它返回一个dict:
{"encoded_uuid": '"9e56a5aa-49c8-4ce9-b035-2f0d840fb5de"'}
但是如果因为这个值现在是一个字符串,我无法使用它查询数据库。 它返回:
raise ValueError('badly formed hexadecimal UUID string')
好的,这是意料之中的,因为我使用的是字符串,而不是UUID。 但如果我尝试将其解码回UUID:
from uuid import UUID
decoded_uuid = UUID('"9e56a5aa-49c8-4ce9-b035-2f0d840fb5de"')
出现以下错误:
raise ValueError('badly formed hexadecimal UUID string')
那么,如何将其解码回UUID
目前没有回答
相关问题 更多 >
编程相关推荐