mar*_*lta 0 django django-rest-framework
保存记录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)
Run Code Online (Sandbox Code Playgroud)
AttributeError:“ EmpresaCreateSerializer”对象没有属性“ id”
模型
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
Run Code Online (Sandbox Code Playgroud)
序列化器
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')
Run Code Online (Sandbox Code Playgroud)
You need to assign the value being returned from the save() method:
obj = empresa.save()
print(obj.id)
Run Code Online (Sandbox Code Playgroud)
The reason is that save() calls create() of the Serializer which returns an object instance
| 归档时间: |
|
| 查看次数: |
2314 次 |
| 最近记录: |