UUID 不可 JSON 序列化(转储数据)

问题描述 投票:0回答:1

我的命令有问题

dumpdata
。然而,我使用
django-uuidfield
作为我的一些模型的主键;每当我尝试运行
dumpdata
时,都会遇到错误

TypeError: UUID('...') is not JSON serializable
.

我发现在 Django 的

DjangoJSONEncoder
类内部,它不会检查
UUID
对象,而是会转到抛出异常的父类的
default()

当我添加检查时,它似乎工作正常,没有任何错误或警告。

我不确定这是一个错误还是我做错了什么。

注:

我没有更改里面的任何代码

django-uuidfield

谢谢。

编辑:

dumpdata
适用于
uuidfield
未设置为
auto
的其他型号。不起作用的将
uudfield
设置为
auto

python json django serialization uuid
1个回答
0
投票

在我的 models.py 中:

import uuid

在我的模型中:

class MyUser(AbstractUser):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)

为了解决这个问题,我使用这个函数写在MyUser中:

def user_id(self):
    return self.id.__str__()

当 TypeError 尝试你类型

UUID
不是 JSON 可序列化时,

所以你应该使用

string
来代替。

希望对您有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.