我对命令dumpdata有问题。然而,我使用django-uuidfield作为我的一些模型的主键;每当我尝试运行dumpdata时,我都会遇到错误
TypeError: UUID('...') is not JSON serializable。
我发现,在Django的DjangoJSONEncoder类中,它没有检查UUID对象,而是会转到父类的default(),这会引发异常。
当我添加检查时,它似乎正常工作,没有任何错误或警告。
我不确定那是个窃听器还是我做错了什么。
注:
我没有更改django-uuidfield内部的任何代码。
谢谢。
编辑:
dumpdata适用于另一个模型,在该模型中,uuidfield未设置为auto。不能工作的uudfield被设置为auto。
发布于 2018-05-07 14:40:54
在我的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不能序列化时,
所以您应该使用string代替。
希望它能帮到你。
https://stackoverflow.com/questions/27790538
复制相似问题