UUID 不可 JSON 序列化 (dumpdata)

Kor*_*rts 5 python django uuid serialization json

我的命令有问题dumpdata。然而,我将django-uuidfield其用作我的一些模型的主键;每当我尝试运行时dumpdata,都会遇到错误

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

我发现在 Django 的DjangoJSONEncoder类内部,它不会检查对象UUID,而是会转到default()引发异常的父类。

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

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

笔记:

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

谢谢。

编辑:

适用于未设置为 的dumpdata另一个模型。不起作用的已设置为.uuidfieldautouudfieldauto

小智 0

在我的 models.py 中:

import uuid
Run Code Online (Sandbox Code Playgroud)

在我的模型中:

class MyUser(AbstractUser):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
Run Code Online (Sandbox Code Playgroud)

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

def user_id(self):
    return self.id.__str__()
Run Code Online (Sandbox Code Playgroud)

当 TypeError 尝试你该类型UUID不是 JSON 可序列化时,

所以你应该使用string

希望它能帮助你。