Как использовать медиафайлы при развертывании (django)?

Нужна помощь в управлении медиафайлами во время развертывания. Я прочитал несколько статей и документации по этому вопросу, но не могу исправить свой конкретный сайт: tis, this и django documentation. Видимо, я упустил какую-то очевидную вещь, или это может быть опечатка в коде (ссылка на медиа файлы).

Итак, я развернул сайт на django, используя gunicorn и nginx. Когда пользователи скачивают какую-либо картинку на сайте, она сохраняется в медиа директории.

models.py

class News(models.Model):
    title = models.CharField(max_length=128)
    content = models.TextField(blank=True)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    photo = models.ImageField(upload_to='photos/%Y/%m/%d', blank=True)

settings.py

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

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

urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('news/', include('news.urls')),
    ...
]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Попробуйте добавить urlpatterns = [...]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) но у меня не работает.

Я предполагаю, что это может быть какая-то проблема в передаче медиафайла. Я проверил ссылку на странице - она правильная. <img src="photos/2022/05/10/kitten.jpg"> И этот файл там есть.

Не удается загрузить изображение на странице.

Как правильно загружать и использовать медиафайлы? Буду рад получить совет или ссылку на любую документацию по этому вопросу. Заранее спасибо.

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