На странице моего профиля пользователю автоматически присваивается изображение по умолчанию при регистрации. Но после изменения способа работы статических и мультимедийных папок выдается следующая ошибка:
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/'
Структура файла: