Как сериализовать две вложенные таблицы django?
Альбом создается, файлы ассоциируются с таблицей альбомов, но вопрос в том, как мне сериализовать обе таблицы, чтобы показать ответ на пост запрос. жду помощи.
Вы можете создать другой ModelSerializer для AlbumImage, например:
class AlbumImageSerializer(serializers.ModelSerializer):
    class Meta:
        model = AlbumImages
        fields = ('media',)
 Затем в своем AlbumSerializer замените:
albumimages = StringRelatedField(many=True, read_only=True)
By:
albumimages = AlbumImageSerializer(many=True, read_only=True)
Больше информации об этом можно найти в документации DRF.
 Я немного подправил ваш код, но он не был протестирован.
Если вы не хотите корректировать поле album-ForeignKey, вы должны изменить поведение сохранения вместо использования .objects.create(). Это должно сработать.
 Вы написали много валидаций. Ваш сериализатор может это сделать. Например, вы можете использовать extra_kwargs = {'media': {'required': True} в вашем AlbumImage-сериализаторе. Если вам нужно больше объяснений, не стесняйтесь спрашивать.
   album = Album(**validated_data)`
   album.albumimages = albumimages_set
   album.save()
#views.py
class AlbumView(APIView):
    def post(self, request, *args, **kwargs):
        resp = Response()
        serializer = AlbumSerializer(data=request.data)
        if serializer.is_valid():
            resp.data = serializer.save()
        else:
            resp.status_code = HTTP_400_BAD_REQUEST
            resp.data = serializer.errors
        return resp
#serializers.py
class AlbumImagesSerializer(serializers.ModelSerializer):
    class Meta:
        model = AlbumImages
        fields = "__all__"
class AlbumSerializer(serializers.ModelSerializer):
    albumimages = AlbumImagesSerializer(many=True, read_only=True)
    class Meta:
        model = Album
        fields = "__all__"
        
    def create(self, validated_data):
        albumimages = validated_data.pop('albumimages')
        albumimages_set = [AlbumImages.objects.create(**element) for element in albumimages ]
            
        album = Album.objects.create(**validated_data)
        album.albumimages.set(albumimages_set)
        album.save()
        
        return album 
#models.py
class Album(models.Model):
    name = models.CharField(max_length=30, null=False, blank=False)
    def __str__(self):
        return self.name
class AlbumImages(models.Model):
    album = models.ForeignKey(Album, related_name='albumimages', blank=True, null=True, on_delete=models.CASCADE)
    media = models.ImageField(upload_to='album/images')
    def __str__(self) -> str:
        return f'Files of ' + self.album.name
                    

