DRF Как сериализовать модель с медиа и полем внешнего ключа Django

У меня есть модель django, содержащая filefield и imagefield

class Audios(models.Model):
    name = models.CharField(max_length = 29,blank=True,null=True)
    duration = models.DecimalField(default=0.0,max_digits=5, decimal_places=2)
    language = models.ForeignKey(Language,on_delete=models.PROTECT,related_name='audios')
    zartist = models.ForeignKey(Artist,on_delete=models.CASCADE,related_name='myaudios')
    annotation = models.CharField(max_length=50)
    avatar = models.ImageField(upload_to=saveAudioImage, 
              validators=[FileExtensionValidator(allowed_extensions=["jpg","png","jpeg"])], null=True, blank=True)
    audio = models.FileField(upload_to=saveAudioFile, 
             validators=[FileExtensionValidator(allowed_extensions=["mp3","acc"])], null=True, blank=True)
    streamed = models.PositiveIntegerField(default=0)
    rating = models.DecimalField(default=0.0,max_digits=2, decimal_places=1)
    created = models.DateTimeField(auto_now_add=True)
    likes = models.PositiveIntegerField(default=0)
    modified = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.name

а поле zartist является внешним ключом к другой модели artist и я написал для него сериализатор

class AudiSerializer(serializers.ModelSerializer):
    class Meta:
        model = Audios
        fields = ('id','name','language','zartist','annotation','avatar','audio')

и вид

class AudioUpload(APIView):
    parser_classes = [MultiPartParser, FormParser]

    def post(self, request,format=None):
        print(request.data)
        print("\n\n")
        serializer = AudiSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save
            return Response(serializer.data)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

но когда я тестирую его через httpie, он не сохраняет его в базу данных и поле файла и поле изображения не обрабатываются должным образом. Кто-нибудь может помочь, пожалуйста?

Вернуться на верх