Задать вопрос
@bituke

Почему не выводятся изображения из CharField в django?

Проблема заключается вот в чем:
Папка, в которую загружаются изображения потенциальным пользователем, это папка media.
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
    ]

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

А папка, из которой могут отгружаться изображения, это только папка static.
Проблема заключается в том, что я не могу вывести в шаблон картинку из папки медиа, ибо она загружается только с папки static. Пробовал добавлять в корневой urls.py проекта эту строку:
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
	path('', include('homepage.urls')),
    path('admin/', admin.site.urls),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)


Но ничего не помогло.
Вот как это выглядит в шаблоне:

{% if latest_categories %}
		{% for a in latest_categories %}
			<a href="#">{{a.name_category}}</a>
			<img src="{{a.img_category.url}}">
		{% endfor %}
	{% else %}
		Категории не найдены.
	{% endif %}


Название категории выводится, и url изображения идет правильный, но джанго видит его как не файл статики, из-за чего не выводит. Вот как это выглядит в итоговом html коде:
<a href="#">fuckmybrain</a>
			<img src="/media/category/backg.jpg">
		
			<a href="#">Кирпичи</a>
			<img src="/media/category/d90f68079558e8edfd1cce75ffa0e04c.jpg">
		
			<a href="#">Металлопрокат</a>
			<img src="/media/category/7962256765.jpg">
		
			<a href="#">Пиломатериал</a>
			<img src="/media/category/%D0%9F%D0%B8%D0%BB%D0%BE%D0%BC%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB.jpg">


Прошу помощи, фидбек обещаю.
  • Вопрос задан
  • 59 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
tema_sun
@tema_sun
Вы в urls.py добавили строку для поддержки STATIC_URL/STATIC_ROOT, но для media файлов нужна поддержка MEDIA_URL/MEDIA_ROOT

https://docs.djangoproject.com/en/2.2/howto/static...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы