多个序列化器
Multiple Serilizers
你好,我有这个模型,我想序列化这个 en one viewsets
Models.py
class Coche(models.Model):
marca = models.ForeignKey('Marca', null=True, blank=True,verbose_name="Marca")
modelo = models.ForeignKey('Modelo', null=True, blank=True)
version = models.CharField(max_length=120)
estado = models.CharField(max_length=12, choices=Estado_CHOICES)
anio = models.IntegerField ( )
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
def __unicode__(self):
return self.version
def get_absolute_url(self):
return reverse("single_product", kwargs={"pk": self.pk})
class ParteFrontal(models.Model):
coche = models.ForeignKey(Coche, related_name='partefrontal')
imagen = models.ImageField(upload_to='templates/products/images/')
notas = models.TextField(null=True)
我试过如下
serializers.py
class CocheImagen(serializers.ModelSerializer):
partefrontal = serializers(many=True,read_only=True)
class Meta :
model = Coche
fields = ('marca', 'modelo','version', 'estado','anio','partefrontal')
Viewsets.py
class CocheImagen(viewsets.ModelViewSet):
serializer_class = CocheImagen
queryset = Coche.objects.all()
您需要为 ParteFrontal
创建另一个序列化程序,例如:
class ParteFrontalSerializer(serializers.ModelSerializer):
class Meta:
model = ParteFrontal
fields = ('imagen', 'notas')
接下来,您可以在 CocheImagen
序列化器中使用 ParteFrontalSerializer
,例如:
class CocheImagen(serializers.ModelSerializer):
partefrontal = ParteFrontalSerializer(many=True,read_only=True)
class Meta :
model = Coche
fields = ('marca', 'modelo','version', 'estado','anio','partefrontal')
了解有关嵌套关系的更多信息here
你好,我有这个模型,我想序列化这个 en one viewsets
Models.py
class Coche(models.Model):
marca = models.ForeignKey('Marca', null=True, blank=True,verbose_name="Marca")
modelo = models.ForeignKey('Modelo', null=True, blank=True)
version = models.CharField(max_length=120)
estado = models.CharField(max_length=12, choices=Estado_CHOICES)
anio = models.IntegerField ( )
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
def __unicode__(self):
return self.version
def get_absolute_url(self):
return reverse("single_product", kwargs={"pk": self.pk})
class ParteFrontal(models.Model):
coche = models.ForeignKey(Coche, related_name='partefrontal')
imagen = models.ImageField(upload_to='templates/products/images/')
notas = models.TextField(null=True)
我试过如下
serializers.py
class CocheImagen(serializers.ModelSerializer):
partefrontal = serializers(many=True,read_only=True)
class Meta :
model = Coche
fields = ('marca', 'modelo','version', 'estado','anio','partefrontal')
Viewsets.py
class CocheImagen(viewsets.ModelViewSet):
serializer_class = CocheImagen
queryset = Coche.objects.all()
您需要为 ParteFrontal
创建另一个序列化程序,例如:
class ParteFrontalSerializer(serializers.ModelSerializer):
class Meta:
model = ParteFrontal
fields = ('imagen', 'notas')
接下来,您可以在 CocheImagen
序列化器中使用 ParteFrontalSerializer
,例如:
class CocheImagen(serializers.ModelSerializer):
partefrontal = ParteFrontalSerializer(many=True,read_only=True)
class Meta :
model = Coche
fields = ('marca', 'modelo','version', 'estado','anio','partefrontal')
了解有关嵌套关系的更多信息here