Шаблон Django не отображает фотографии
Я пытаюсь отрендерить фотографии из моего статического файла, но это не работает. Путь найден, но фотографии не отображаются. Вот часть моего кода:
models.py
class Book(models.Model):
title = models.CharField(max_length=200)
adultcontent = models.BooleanField(default=False)
book_photo = models.ImageField(null=True, blank=True)
def __str__(self):
return self.title
views.py
def bookIndex(request):
books = Book.objects.all()
form = BookForm()
if request.method =='POST':
form = BookForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('/books')
context = {'books': books, 'form':form}
return render(request, '../templates/list.html', context)
шаблон: (если я делаю его {{book.book_photo.url}}, то происходит сбой
){% load static %}
{% for book in books %}
{% if book.adultcontent == True and user.is_child %}
<div class="hidden">
{% if user.is_admin%}
<a class="btn btn-sm btn-info" href="{% url 'edit_book' book.id %}">Update</a>
<a class="btn btn-sm btn-danger" href="{% url 'delete_book' book.id %}">Delete</a>
{% endif %}
{% else %}
<div class="book-row">
{% if user.is_admin%}
<a class="btn btn-sm btn-info" href="{% url 'edit_book' book.id %}">Update</a>
<a class="btn btn-sm btn-danger" href="{% url 'delete_book' book.id %}">Delete</a>
{% endif %}
<span></span>
<span>{{book}}</span>
<img class="photo" src="{{book.book_photo}}" >
{% endif %}
</div>
{%endfor%}
Я дополнительно настроил settings.py
STATIC_URL = '/static/'
MEDIA_URL = '/images/'
STATICFILES_DIR = [os.path.join(BASE_DIR, 'static')]
MEDIA_ROOT = os.path.join(BASE_DIR, 'static/images')
и добавили urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
консоль показывает, что источник фотографии найден, но изображения выглядят разбитыми:
Я перепробовал все, чтобы заставить его работать. Есть ли у кого-нибудь идеи, где я могу ошибаться?
Спасибо!
Установите pillow, библиотеку изображений с помощью этой команды:
"pip install pillow"
и попробуйте снова. Должно получиться.