繁体   English   中英

如何在Django Rest API中序列化相关模型?

[英]How to serialize related models in Django Rest API?

我已经尝试了所有解决方案。 仍然无法解决。 这是代码。

models.py

class Car(models.Model):
    car_name = models.CharField(max_length=250)
    car_description = models.CharField(max_length=250)


    def __str__(self):
        return self.car_name + ' - ' + str(self.pk)

class Owners(models.Model):
    car = models.ForeignKey(Car, on_delete=models.CASCADE, default=0)
    owner_name = models.CharField(max_length=250)
    owner_desc = models.CharField(max_length=250)

    def get_absolute_url(self):
        return reverse('appname:index')

    def __str__(self):
        return self.owner_name + ' - ' +    self.owner_desc

serializers.py

class OwnersSerializer(serializers.ModelSerializer):  
    class Meta:
        model = Owners
        fields = '__all__'


class CarSerializer(serializers.ModelSerializer):  

    owners = OwnersSerializer(many=True, read_only=True)
    class Meta:
        model = Car
        fields = '__all__'

views.py

class CarList(APIView):

    def get(self, request):
        cars = Car.objects.all()
        serializer = CarSerializer(cars, many=True)
        return Response(serializer.data)

    def post(self):
        pass    

我无法查看与“汽车”类的某个对象相关的所有“所有者”对象。

您需要在ForeignKey上定义一个相关名称以创建反向引用。

class Owners(models.Model):

    car = models.ForeignKey(Car, on_delete=models.CASCADE, default=0, related_name='owners')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM