Изображение не отображается в шаблонах в django
Это мои шаблоны, когда я добавляю песню из базы данных, все работает нормально, но изображение не отображается в шаблонах, как я могу это решить? вот мои шаблоны. {% for audio in songs %}
<div class="player">
<div class="imgBx">
<div>
<p>{{audio.book_title}}</p>
<p>{{audio.artist}}</p>
<p>{{audio.author}}</p>
</div>
<img src="{{object.image_url}}" alt="">
</div>
<audio controls>
<source src="{{audio.file.url}}" type="audio/mp3">
</audio>
</div>
{% endfor %}
вот мой models.py from django.db import models
Создавайте свои модели здесь.
class Audio(models.Model):
book_title = models.CharField(max_length=100, null=False, blank=False)
file = models.FileField(upload_to='file')
author = models.CharField(max_length=100, null=False, blank=False)
artist = models.CharField(max_length=100, null=False, blank=False)
image = models.ImageField(upload_to=file, null=True, blank=False)
def __str__(self):
return self.book_title
def image_url():
if self.image and hasattr(self.image, 'url'):
return self.image.url
вот мой views.py
from django.shortcuts import render
from .models import Audio
Создайте свои представления здесь.
def index(request):
context = {'songs': Audio.objects.all()}
return render(request, 'index.html', context)
Вы можете сделать из python Property внутри ваших django моделей, как показано ниже.
class Audio(models.Model):
book_title = models.CharField(max_length=100, null=False, blank=False)
file = models.FileField(upload_to="file")
author = models.CharField(max_length=100, null=False, blank=False)
artist = models.CharField(max_length=100, null=False, blank=False)
image = models.ImageField(upload_to=file, null=True, blank=False)
def __str__(self):
return self.book_title
@property
def image_url(self):
"""
Returns a image url if the audio has an image.
"""
return self.image.url if self.image else None
Я думаю, что у вас ошибка в <img src="{{object.image_url}}" alt="">
, которая должна быть <img src="{{audio.image.url}}" alt="">