Django Ошибка операции подозрительного файла при загрузке изображения - PullRequest
0 голосов
/ 25 мая 2019

На странице моего профиля пользователю автоматически присваивается изображение по умолчанию при регистрации. Но после изменения способа работы статических и мультимедийных папок выдается следующая ошибка:

django.core.exceptions.SuspiciousFileOperation: The joined path (/static/public/images/default.jpg) is located outside of the base path component (/mnt/c/Users/maxlo/Documents/apps/adinl/adinl/media).

Я думаю, что оно пытается найти изображение в медиа, но с тех пор оно было перемещено в static / public / images / default.jpg

Я попробовал следующее , но, похоже, не работает.

Если у кого-то есть идея, как это исправить, было бы замечательно.

Модели:

from django.db import models
from django.contrib.auth.models import User
from django.core.files import File

from PIL import Image

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    image = models.ImageField(default='/static/public/images/default.jpg', upload_to='profile_pictures', verbose_name='Profile Picture')

    def __str__(self):
        return f'{self.user.username} Profile'

    def save(self, force_insert=False, force_update=False, using=None):
        super().save()

        img = Image.open(self.image.path)

        if img.height > 300 or img.width > 300:
            output_size = (300, 300)
            img.thumbnail(output_size)
            img.save(self.image.path)

Settings.py:

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]

MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')
MEDIA_URL = '/media/'

Структура файла:

enter image description here

...