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
  1. Ваши изображения сохраняются в:

img -> static -> img

Вам лучше прописать так:

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

И в models прописать:

model_img = models.ImageField(upload_to='img/')

Тогда ваши загруженные изображения будут сохранятся в:

media -> img Что более удобней.

  1. Из views Вы отправляете count, то есть общее количество всех фотографий, если вы хотите отправить сами фотографии, стоило бы прописать:

num_img = Images.objects.all()

И в html использовать не тег <a>, а тег img:

{% for i in num_img %}
    <img src="{{ i.model_img.url }}">
{% endfor %}
→ Ссылка