Django вывод картинки из базы
Картинки были внесены в базу через админку, помогите вывести путь /broom/static/img
settings.py:
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'img/')
MEDIA_URL = '/img/'
models.py:
class Images(models.Model):
model_img = models.ImageField(upload_to='static/img')
views.py:
def index(request):
num_img = Images.objects.all().count()
return render(request, 'index.html', context={'num_img': num_img})
шаблон:
{% block content %}
{% for i in num_img %}
<a href="{{ i.model_img.url }}"></a>
{% endfor %}
{% endblock %}
urls.py:
urlpatterns = [
path('admin/', admin.site.urls),
path('broom/', include('broom.urls')),
path('', RedirectView.as_view(url='/broom/', permanent=True)),
]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Ответы (1 шт):
Автор решения: Sherlock
→ Ссылка
- Ваши изображения сохраняются в:
img -> static -> img
Вам лучше прописать так:
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
И в models прописать:
model_img = models.ImageField(upload_to='img/')
Тогда ваши загруженные изображения будут сохранятся в:
media -> img Что более удобней.
- Из
viewsВы отправляетеcount, то есть общее количество всех фотографий, если вы хотите отправить сами фотографии, стоило бы прописать:
num_img = Images.objects.all()
И в html использовать не тег <a>, а тег img:
{% for i in num_img %}
<img src="{{ i.model_img.url }}">
{% endfor %}