保存记录django rest frwamework后如何返回ID。

我正在尝试在保存后立即获取保存的对象。

注册成功,但不返回ID。

    empresa = EmpresaCreateSerializer(data=data)
    empresa.user = user_id
    if(empresa.is_valid()):
        empresa.save()
        print(empresa.id)
    else:
        return Response(empresa.errors)



模型
class Empresa(models.Model):
    nome = models.CharField(max_length=255, null=True)
    cnpj = models.CharField(max_length=15, null=True)
    user = models.ForeignKey(User)

    def __str__(self):
        return self.nome

序列化器
class EmpresaCreateSerializer(serializers.ModelSerializer):
    nome = serializers.CharField(allow_blank=True, allow_null=True)
    cnpj = serializers.CharField(allow_blank=True, allow_null=True)

    class Meta:
        model = Empresa
        fields = ('id','nome', 'cnpj', 'user')

最佳答案

您需要分配从save()方法返回的值:

obj = empresa.save()
print(obj.id)

原因是save()调用了序列化程序的create(),该序列化程序返回一个对象实例。

关于django - 保存记录Django Rest框架后如何返回ID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46087646/

10-13 06:37