我尝试了所有的解决方案。 仍然无法解决它。 这是代码。
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_descserializers.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我无法查看与“汽车”类的某个对象相关的所有“所有者”对象。
I have tried all the solutions. Still cannot resolve it. Here are the codes.
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_descserializers.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): passI can't get to view all the 'Owner' objects related to a certain object of the 'Car' class.
最满意答案
您需要在ForeignKey上定义相关名称以创建反向引用。
class Owners(models.Model): car = models.ForeignKey(Car, on_delete=models.CASCADE, default=0, related_name='owners')You need to define a related name on the ForeignKey to create the reverse reference.
class Owners(models.Model): car = models.ForeignKey(Car, on_delete=models.CASCADE, default=0, related_name='owners')如何在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_descserializers.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我无法查看与“汽车”类的某个对象相关的所有“所有者”对象。
I have tried all the solutions. Still cannot resolve it. Here are the codes.
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_descserializers.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): passI can't get to view all the 'Owner' objects related to a certain object of the 'Car' class.
最满意答案
您需要在ForeignKey上定义相关名称以创建反向引用。
class Owners(models.Model): car = models.ForeignKey(Car, on_delete=models.CASCADE, default=0, related_name='owners')You need to define a related name on the ForeignKey to create the reverse reference.
class Owners(models.Model): car = models.ForeignKey(Car, on_delete=models.CASCADE, default=0, related_name='owners')
发布评论