Невозможно сохранить изображение в папку "media", когда поле ImageField UPDATES

Я использую ajax для отправки файла изображения через formdata()

Код Javascript:

    $("#change-default-img").change(function () {
        let category = $($("#category-buttons-row").find('button[aria-label="ACTIVE"]')).attr("id")


        // Change preview in the UI
        if (this.files && this.files[0]) {
            var reader = new FileReader();
            reader.onload = function (e) {
                $("#imagePreviewDefault").css('background-image', 'url(' + e.target.result + ')');
            }
            reader.readAsDataURL(this.files[0]);
        }

        var fileData = new FormData();

        fileData.append("file", this.files[0])
        fileData.append("csrfmiddlewaretoken", "{{ csrf_token }}")
        fileData.append("category", category)

        $.ajax({
            method: "POST",
            url: "{% url 'set-default-image' %}",
            processData: false,
            contentType: false,
            mimeType: "multipart/form-data",
            data: fileData,
            success: function (response) {

                data = $.parseJSON(response);

                if (data.status == "Done") {
                    console.log("Default image updated for " + category);
                }
            }
        })

    })

Это мой взгляд на обновление ImageField

    if request.method == 'POST':
        category = request.POST['category']
        image = request.FILES.get('file')
        image = f'default_images/{image}'

        if category == 'category-logo':
            DefaultImages.objects.filter(app_name='payup').update(app_logo=image)
        
        elif category == 'category-property':
            DefaultImages.objects.filter(app_name='payup').update(property_card=image)

        elif category == 'category-owner':
            DefaultImages.objects.filter(app_name='payup').update(owner_profile=image)

        elif category == 'category-renter':
            DefaultImages.objects.filter(app_name='payup').update(renter_profile=image)

        return JsonResponse({'status': 'Done'})

Это моя models.py

class DefaultImages(models.Model):
    app_name = models.CharField(max_length=5, default='payup')
    app_logo = models.ImageField(upload_to="default_images/", null=True)
    property_card = models.ImageField(upload_to="default_images/", null=True)
    owner_profile = models.ImageField(upload_to="default_images/", null=True)
    renter_profile = models.ImageField(upload_to="default_images/", null=True)

    def __str__(self):
        return self.app_name

Вот как выглядит каталог :

media
 ---- backup_images
 ---- profile_images
 ---- prop_images

Когда я меняю изображение в UI, запрос POST отправляется успешно, события ImageField успешно обновляются, например, если имя предыдущего изображения " 1.png " и я загружаю новое изображение с именем " 2.png ", ImageField обновляется с default_images/1.png до default_images/2.png, что я могу видеть на панели администратора. Но изображение " 2.png " не сохраняется в media/default_images/.

Настройки для MEDIA и MEDIA_ROOT установлены идеально, раньше это даже работало. После этого я внес много изменений в базу данных. Какие-то из этих изменений должны мешать сохранению изображения, но я не могу понять этого.

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