Загрузка изображений в django

Я использую django уже некоторое время, но недавно заметил вот что. До этого я думал, что изображения в django, по умолчанию, загружаются по путь, указанный в STATIC_URL, но я только что увидел, что в моем приложении поведение отличается. У меня это настроено в settings.py:

class BlogPost(models.Model):
    author = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.CASCADE)
    category = models.CharField(max_length=50, choices=Categories.choices, default=Categories.medications)
    title = models.CharField(max_length=50)
    slug = models.SlugField()
    image = ResizedImageField(upload_to='images/blog/', null=True, blank=True)
    introduction = models.CharField(max_length=255)
    body = models.TextField()

settings.py

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static',),
    os.path.join(BASE_DIR, 'frontend/build/static'),
    ]
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')

Каталоги static, staticfiles и media находятся в корневом каталоге. В моем приложении django, если каталог media отсутствует, то изображения загружаются в каталог static. Однако, когда присутствуют и статическая, и медиа директории, предпочтение отдается директории media (изображения загружаются в каталог media). Может я где-то допустил ошибку?

STATIC_ROOT использовался для хранения всех видов файлов, таких как JavaScript, CSS и медиафайлы. Бот теперь MEDIA_ROOT используется явно для изображений и других медиа. Именно туда следует помещать все медиафайлы, вы также можете создать дополнительные каталоги в MEDIA_ROOT, например, для каждой модели, которая у вас есть. Подробнее о MEDIA_ROOT здесь

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