Django Rest Framework - 嵌套序列化不起作用
Django Rest Framework - Nested Serialization not working
model.py
class Account(models.Model):
name_Account= models.CharField(max_length=50, default='')
fecha_nacimiento = models.CharField(max_length=150, default='')
phone = models.CharField(max_length=150, default='')
mail = models.CharField(max_length=150, default='')
user_id = models.ForeignKey(User,on_delete=models.CASCADE)
rol_id = models.ForeignKey(Rol,on_delete=models.CASCADE, null =True)
class Reclamo(models.Model):
nameReclamo= models.CharField(max_length=50, default='')
rut = models.CharField(max_length=20, default='')
numpoliza = models.CharField(max_length=30, default='')
detalle_diagnostico = models.CharField(max_length=200, default='')
account_id = models.ForeignKey(Account,on_delete=models.CASCADE,null =True)
date = models.DateField(auto_now=True)
name_estado= models.CharField(max_length=50, default='Pendiente')
num_claim= models.CharField(max_length=30, default=' ' ,blank = True)
serializer.py
class AccountSerializer(serializers.ModelSerializer):
class Meta:
model = Account
fields = ('id', 'name_Account', 'fecha_nacimiento', 'phone', 'mail', 'user_id', 'rol_id')
class ReclamoSerializer(serializers.ModelSerializer):
name_Account = AccountSerializer(many=False) #read_only=True no return, no error
class Meta:
model = Reclamo
fields = ('id','nameReclamo','rut','numpoliza','detalle_diagnostico','account_id','date','name_estado','num_claim', 'name_Account')
错误
Got AttributeError when attempting to get a value for field
name_Account
on serializer ReclamoSerializer
.
The serializer field might be named incorrectly and not match any attribute or key on the Reclamo
instance.
Original exception text was: 'Reclamo' object has no attribute 'name_Account'.
我试过不同的例子,但我不能return我希望
属性 name_Account
不存在。您必须指向 account_id
,因为那是指向 Account
模型的 ForeignKey
。
class ReclamoSerializer(serializers.ModelSerializer):
account_id = AccountSerializer(many=False)
class Meta:
model = Reclamo
fields = ('id','nameReclamo','rut','numpoliza','detalle_diagnostico','account_id','date','name_estado','num_claim')
model.py
class Account(models.Model):
name_Account= models.CharField(max_length=50, default='')
fecha_nacimiento = models.CharField(max_length=150, default='')
phone = models.CharField(max_length=150, default='')
mail = models.CharField(max_length=150, default='')
user_id = models.ForeignKey(User,on_delete=models.CASCADE)
rol_id = models.ForeignKey(Rol,on_delete=models.CASCADE, null =True)
class Reclamo(models.Model):
nameReclamo= models.CharField(max_length=50, default='')
rut = models.CharField(max_length=20, default='')
numpoliza = models.CharField(max_length=30, default='')
detalle_diagnostico = models.CharField(max_length=200, default='')
account_id = models.ForeignKey(Account,on_delete=models.CASCADE,null =True)
date = models.DateField(auto_now=True)
name_estado= models.CharField(max_length=50, default='Pendiente')
num_claim= models.CharField(max_length=30, default=' ' ,blank = True)
serializer.py
class AccountSerializer(serializers.ModelSerializer):
class Meta:
model = Account
fields = ('id', 'name_Account', 'fecha_nacimiento', 'phone', 'mail', 'user_id', 'rol_id')
class ReclamoSerializer(serializers.ModelSerializer):
name_Account = AccountSerializer(many=False) #read_only=True no return, no error
class Meta:
model = Reclamo
fields = ('id','nameReclamo','rut','numpoliza','detalle_diagnostico','account_id','date','name_estado','num_claim', 'name_Account')
错误
Got AttributeError when attempting to get a value for field
name_Account
on serializerReclamoSerializer
. The serializer field might be named incorrectly and not match any attribute or key on theReclamo
instance. Original exception text was: 'Reclamo' object has no attribute 'name_Account'.
我试过不同的例子,但我不能return我希望
属性 name_Account
不存在。您必须指向 account_id
,因为那是指向 Account
模型的 ForeignKey
。
class ReclamoSerializer(serializers.ModelSerializer):
account_id = AccountSerializer(many=False)
class Meta:
model = Reclamo
fields = ('id','nameReclamo','rut','numpoliza','detalle_diagnostico','account_id','date','name_estado','num_claim')