Django rest framework 执行创建:在访问“serializer.data”后,不能调用“.save()”`

Django rest framework 执行创建:在访问“serializer.data”后,不能调用“.save()”`,django-rest-framework,Django Rest Framework,我使用以下代码重写CreateModelMixin: def create(self, request): serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) with transaction.atomic(): self.perform_create(serializer) 在sel

我使用以下代码重写CreateModelMixin:

 def create(self, request):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        with transaction.atomic():
            self.perform_create(serializer)
在self.perform_create(序列化程序)行中,我得到错误:

"You cannot call `.save()` after accessing `serializer.data`."

您是否也重写了
perform\u create()
函数?如果没有,您可以执行
序列化程序.save()
。此外,您还可以使用
@transaction.atomic()
装饰器来包围整个
create()
函数,而不是为了尝试而在最后使用它。@Shinratensei在访问
序列化程序后,我会遇到同样的错误“您无法调用
.save()
”断言错误:您无法调用
.save>()
在访问
serializer.data
之后。如果在提交到数据库之前需要访问数据,请检查“serializer.validated\u data”。奇怪。您是否正在尝试创建对象的嵌套序列化?例如,一个对象具有另一个对象的外键,并且您也在尝试序列化另一个对象?什么视图当您收到错误时,Mixin是否适用于?