我的命令有问题
dumpdata
。然而,我使用 django-uuidfield
作为我的一些模型的主键;每当我尝试运行 dumpdata
时,都会遇到错误
TypeError: UUID('...') is not JSON serializable
.
DjangoJSONEncoder
类内部,它不会检查 UUID
对象,而是会转到抛出异常的父类的 default()
。
当我添加检查时,它似乎工作正常,没有任何错误或警告。
我不确定这是一个错误还是我做错了什么。
注:
我没有更改里面的任何代码
django-uuidfield
。
谢谢。
编辑:
dumpdata
适用于 uuidfield
未设置为 auto
的其他型号。不起作用的将 uudfield
设置为 auto
。
在我的 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
来代替。
希望对您有帮助。