В вашем urls.py
вы можете сделать что-то подобное для разработки
from django.urls import path
urlpatters = [
# your url patterns here
]
if settings.DEBUG:
from django.conf.urls.static import static
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
# serve static and media files from development server
urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Вам не нужно использовать эти настройки, когда у вас есть DEBUG = False
в вашем файле settings.py
.
Также в вашем файле settings.py
вы должны указать расположение файлов * stati c и файлов мультимедиа, потому что, как только вы развернете его в производство, Django будет использовать эти настройки при запуске python manage.py collectstatic
. Вот пример:
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
=== РЕДАКТИРОВАТЬ, чтобы ответить на ваш вопрос в комментарии ===
Когда загруженный пользователем контент загружен (AKA media), ссылка на этот файл Местоположение хранится в базе данных. Поэтому, когда ваш контекст передается в шаблон, вы автоматически получаете объект изображения, на который вы можете ссылаться в своем шаблоне.
Вы бы сделали что-то вроде этого
<img src="{{ self.someimage.url }}" alt=""> # would give you the url path.
Я не уверен, что ваш контекст был передан в шаблон, поэтому вам нужно будет взять его отсюда или вставить свой вид из файла views.py
в вашем вопросе.