Как установить путь к изображению в шаблоне Django - PullRequest
0 голосов
/ 30 мая 2019

Я пытаюсь отобразить уже сохраненное изображение базы в шаблоне. Но здесь я получаю только название изображения. Как это решить, где я ошибся.

models.py

class Images(models.Model):
    image = models.ImageField(upload_to='images', blank=True, null=True)

settings.py

STATIC_URL = '/static/'

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

MEDIA_URL = '/media/'

urls.py

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

views.py

def display(request):
     myimages_objs = Images.objects.all().values()
     for i in myimages_objs :
          myimages_objs = i['image']
          return render(request, 'index.html', {'myimages_obj ': myimages_objs })

index.html

<div class="divi">
   <img src="{{ myimages_obj }}" alt="image">
</div>

1 Ответ

0 голосов
/ 30 мая 2019

Я не понимаю, почему вы возвращаете объекты внутри цикла for, это приводит к тому, что в шаблоне отображается только одно изображение.Вместо этого вы можете передать все объекты изображения в шаблоне, а затем перебрать объекты в шаблоне для отображения изображений.

Вы можете изменить свой вид как:

def display(request):
    myimages_objs = Images.objects.all() # get all the images
    return render(request, 'index.html', {'myimages_objs':myimages_objs})

Затем в вашем шаблоне:

<div class="divi">
    {% for item in myimages_objs %} //loop through all the images
        <img src="{{ item.image.url }}" alt="image">
    {% endfor %}
</div>

Редактировать:

Изменить upload_to на upload_to = "images /".

Насколько мне известно, ваши изображения не сохраняются в папке images, поскольку вы пропустили обратную косую черту (которая представляет собой имя папки).Таким образом, изображения сохраняются в папке media.

Но URL-адрес изображения похож на project_path/media/images/something.jpg, который не может быть найден, так как изображения не сохраняются в папке images.

Измените поле, как указано для новых изображений, которые будут сохранены в указанной папке.Для старых изображений скопируйте их в папку изображений вручную.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...