我在模型中有一个关系,我想让您告诉我您分配的名称而不是ID
我拥有的apps.control.models
class Movimiento(models.Model):
tipo = models.CharField(max_length=1, blank=True, null=True, choices=TIPO)# Compra o Nacimiento
descripcion = models.CharField(max_length=20, blank=True, null=True, choices=DESCRIP)
fecha = models.DateField(blank=True, null=True)
arete = models.CharField(max_length=10, blank=True, null=True)
pesonacimiento = models.IntegerField(default=0)
raza = models.ForeignKey(Raza, blank=True, null=True, on_delete=models.CASCADE, related_name='movimiento_raza')
imagen = models.ImageField(verbose_name="Imagen", blank=True, null=True, upload_to="ovinos")
peso = models.IntegerField(default=0)
observaciones = models.CharField(max_length=255, blank=True, null=True)
def __str__(self):
return self.arete
我拥有的apps.catalogos.models
class Raza(models.Model):
codigo = models.CharField(max_length=4,blank=True,null=True)
nombre = models.CharField(max_length=100,blank=True,null=True)
color = ColorField(default='#FF0000')
def __str__(self):
return self.nombre
我的序列化器是:
class MovimientoSerializer(ModelSerializer):
descripcion = serializers.SerializerMethodField()
tipo = serializers.SerializerMethodField()
class Meta:
model = Movimiento
fields = '__all__'
def get_descripcion(self,obj):
dato = obj.get_descripcion_display()
return dato
def get_tipo(self,obj):
dato = obj.get_tipo_display()
return dato
如何获取raza目录的名称而不是ID,有人可以帮我吗?
我的api中的名称
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
[
{
"id": 11,
"descripcion": "Semental",
"tipo": "Compra",
"fecha": "2019-05-08",
"arete": "A-001",,
"pesonacimiento": 0,
"peso": 0,
"observaciones": "Es la primera",
"raza": 3 **<----- here the name, not the id**
}
答案 0 :(得分:2)
您也许可以使用SlugRelatedField
serializer field。
即
class MovimientoSerializer(ModelSerializer):
raza = serializers.SlugRelatedField(slug_field="nombre", queryset=Raza.objects.all())
# other fields...