Record an operation in reverse Django Rest Framework

I have such models:

class Car(models.Model):
    name = models.CharField(max_length=255)


class CarImage(models.Model):
    car = models.ForeignKey(Car, related_name='photos')
    photo = models.ImageField(upload_to='car/')

For serializer, I have:

class CarImageSerializer(serializer.ModelSerializer):
    class Meta:
        model = CarImage

class CarSerializer(serializer.ModelSerializer):
    photos = CarImageSerializer()
    class Meta:
        model = Car
        fields = ('id', 'name', 'photos',)

When the web interface is loaded for CarSerializer, I get non_field_errorsin the photosdefault box . Is it supported by DRF support? If not the best way to do this? PS I use a commonCreateAPIView

+4
source share
2 answers

Using docs , you should do it differently:

class CarSerializer(serializer.ModelSerializer):
    photos = serializers.RelatedField(many=True)
    class Meta:
        model = Car
        fields = ('id', 'name', 'photos',)
+1
source

Perhaps you can try the following:

serializers.py

class CarImageSerializer(serializers.ModelSerializer):

    class Meta:
        model = CarImage


class CarSerializer(serializers.HyperlinkedModelSerializer):
    photos = serializers.HyperlinkedRelatedField(many=True,
                                                 view_name='carimage-list')

    class Meta:
        model = Car
        fields = ('id', 'name', 'photos',)

views.py

class CarImageList(ListCreateAPIView):
    queryset = CarImage.objects.all()
    serializer_class = CarImageSerializer


class CarList(ListCreateAPIView):
    queryset = Car.objects.all()
    serializer_class = CarSerializer

urls.py

url(r'^carimage/$', CarImageList.as_view(), name='carimage-list'),
url(r'^car/$', CarList.as_view(), name='car-list'),

You must take care of all necessary imports. There is no guarantee, but you can try.

+1
source

All Articles