Как добавить картинку из Базы Данных в Django?
Я не могу вывести картинку из БД в мой HTML, все кроме этого выводится.
models.py
from turtle import title
from django.db import models
class Artiles(models.Model):
title = models.CharField('Название', max_length=100, default="")
anons = models.CharField('Анонс', max_length=250, default="")
full_text = models.TextField('Характеристики')
date = models.DateTimeField('Дата публикации')
image = models.ImageField(upload_to='images/', null=True, blank=True)
def __str__(self):
return f'Материал : {self.title}'
class Meta:
verbose_name = "Добавление материалов"
verbose_name_plural = "Добавление материалов"
views.py
from distutils.log import error
from django.shortcuts import render, redirect
from .models import Artiles
from .forms import ArtilesForm
from django.views.generic import DetailView, ListView
def news_home(request):
news = Artiles.objects.order_by('-date')
return render(request, 'news/news_home.html', {'news' : news})
class NewsDetailView(DetailView):
model = Artiles
template_name = 'news/details_view.html'
context_object_name = 'article'
def create(request):
global error
if request.method == 'POST':
form = ArtilesForm(request.POST)
if form.is_valid():
form.save()
return redirect("home")
else:
error = "Форма была не верной"
form = ArtilesForm()
data = {
'form': form,
'error': error
}
return render(request, 'news/create.html', data)
news_home.html
{% extends 'glav/layout.html' %}
{% block title %}Материалы{% endblock %}
{% block content %}
<div class="features">
<h1>Материалы</h1>
{% if news %}
{% for i in news %}
<div class="alert alert-warning">
<h3>{{ i.title }}</h3>
<h2>{{ i.anons }}</h2>
<a href="{% url 'news-detail' i.id %}" class="btn btn-warning">Подробнее</a>
<img src="{{ i.image }}">
</div>"
{% endfor %}
{% else %}
<h3>Нет материалов</h3>
{% endif %}
{# Если не выводится основной блок, мы с помощью if выводим "Нет материалов" #}
</div>
{% endblock %}
details_view.html
{% extends 'glav/layout.html' %}
{% block title %}{{ article.title }}{% endblock %}
{% block content %}
<div class="features">
<h1>{{ article.title }}</h1>
<h2>{{ article.anons }}</h2>
<p>{{ article.full_text }}</p>
<p>{{ article.date }}</p>
<img src="{{ article.image }}">
</div>
{% endblock %}
Необходимо добавить .url для картинки
<img src="{{ article.image.url }}">
попробуйте так
src="/media/{{ i.image }}"
добавь в urls.py строку:
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)