2

你好,我有这个模型,我想序列化这个视图集

模型.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)

我尝试如下

序列化程序.py

class CocheImagen(serializers.ModelSerializer):
    partefrontal = serializers(many=True,read_only=True)
    class Meta :
        model = Coche 
        fields = ('marca', 'modelo','version', 'estado','anio','partefrontal')

视图集.py

class CocheImagen(viewsets.ModelViewSet):
    serializer_class = CocheImagen
    queryset = Coche.objects.all()
4

1 回答 1

0

您需要为ParteFrontal类似创建另一个序列化程序:

class ParteFrontalSerializer(serializers.ModelSerializer):
    class Meta:
        model = ParteFrontal
        fields = ('imagen', 'notas')

接下来,您可以ParteFrontalSerializerCocheImagen序列化程序中使用,例如:

class CocheImagen(serializers.ModelSerializer):
    partefrontal = ParteFrontalSerializer(many=True,read_only=True)
    class Meta :
        model = Coche 
        fields = ('marca', 'modelo','version', 'estado','anio','partefrontal')

在此处了解有关嵌套关系的更多信息

于 2015-12-11T19:11:30.050 回答