11
Апр
2017

Как отобразить медиа файлы в шаблоне Django?

models.py
class Catalog(models.Model):
    title = models.CharField(max_length=150)
    description = models.TextField()
    image = models.ImageField(upload_to='catalog_images')

    def __str__(self):
        return self.title

views.py
def description(request, catalog_id):
    catalog = Catalog.objects.get(id=catalog_id)
    desc = catalog.description
    page_header = 'Catalog description'
    context = {'desc': desc,
               'catalog': catalog,
               'page_header': page_header}
    return render(request, 'catalog/description.html', context)

в шаблоне:
{% if catalog.image %}
    <img src="{{ catalog.image.url }}" alt="111">
{% endif %}

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

в просмотре кода страницы:
<img src="/media/catalog_images/640px-Breaded_Cat_1.jpg" alt="111">

по факту картинка в папке есть, но не отображает на странице
в консоли пишет:
[11/Apr/2017 21:08:37] "GET /catalog/1/ HTTP/1.1" 200 1029
Not Found: /media/catalog_images/640px-Breaded_Cat_1.jpg
[11/Apr/2017 21:08:37] "GET /media/catalog_images/640px-Breaded_Cat_1.jpg HTTP/1.1" 404 2277

Источник: https://ru.stackoverflow.com/questions/652538/%D0%9A%D0%B0%D0%BA-%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%B8%D1%82%D1%8C-%D0%BC%D0%B5%D0%B4%D0%B8%D0%B0-%D1%84%D0%B0%D0%B9%D0%BB%D1%8B-%D0%B2-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B5-django

Share

Тебе может это понравится...