Serialization DRF序列化程序是_valid()==True,但.save()不是持久化模型对象

Serialization DRF序列化程序是_valid()==True,但.save()不是持久化模型对象,serialization,django-rest-framework,Serialization,Django Rest Framework,我的列表、检索和销毁操作按预期工作 HTTP响应=201“已创建” "POST /api/atoms/?uid=04d38ad99b2a4353a18438c651eac5ab&created_at=2019-05-12T22:30:04.725089Z&updated_at=2019-05-12T22:30:07.053148Z&charge=1&mass=2 HTTP/1.1" 201 152 在视图集中 class AtomViewSet(viewsets

我的列表、检索和销毁操作按预期工作

HTTP响应=201“已创建”

"POST /api/atoms/?uid=04d38ad99b2a4353a18438c651eac5ab&created_at=2019-05-12T22:30:04.725089Z&updated_at=2019-05-12T22:30:07.053148Z&charge=1&mass=2 HTTP/1.1" 201 152
在视图集中

class AtomViewSet(viewsets.ViewSet):

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

        serializer.save()
        # self.perform_create(serializer) # doesn't work
        # self.node.save() # doesn't work
        # headers = self.get_success_headers(serializer.data)
        return Response(serializer.data, status=status.HTTP_201_CREATED,) # headers=headers
下面是我运行
serializer.save()时得到的结果

我现在正在查看我的序列化程序。不确定创建和更新应该包含什么


AtomSerializer
中,实际上并没有保存对象,只是在内存中创建或修改对象的实例,请使用
save()
将实例持久保存到数据库中

def create(self, validated_data):
    atom = Atom(**validated_data)
    atom.save()
    # Alternative you could use atom = Atom.objects.create(**validated_data)
    return atom
同样,对于更新方法,您需要在修改对象后保存它

def update(self, instance, validated_data):
    for field, value in validated_data.items():
        setattr(instance, field, value)
    instance.save() # <-- saving the instance after setattr
    return instance
def更新(自身、实例、已验证的_数据):
对于字段,验证的_data.items()中的值:
setattr(实例、字段、值)

实例。保存()#谢谢!我正要手动实例化模型Atom()并设置每个键值哈哈。序列化程序的创建、保存和执行创建都是相关的,这很奇怪。
def create(self, validated_data):
    atom = Atom(**validated_data)
    atom.save()
    # Alternative you could use atom = Atom.objects.create(**validated_data)
    return atom
def update(self, instance, validated_data):
    for field, value in validated_data.items():
        setattr(instance, field, value)
    instance.save() # <-- saving the instance after setattr
    return instance