Не найдено: /products/images/DSroadmap.png Не найдено: /products/images/codewall.jpg [26 / Jan / 2020 22:13:36] - PullRequest
1 голос
/ 26 января 2020

Я не могу загрузить изображения из моего MEDIAL_URL на страницу html. Ниже мой код для загрузки изображений, медиа-URL и html. Любая помощь будет высоко оценена.

html:
    <div class="row">   
        {% for item in items %}
          <div class='col-sm-3'>
           {% for item in item.itemimage_set.all %}
            {% if item.featured %}
              <img src="{{ MEDIA_URL }}{{ item.image }}">
            {% endif %}
           {% endfor %}
          {{ item.title }}
          {{ item.price }}
    </div>
        {% cycle "" "" "" "</div><br/><hr/><div class='row'>" %}
        {% endfor %}
    </div>

model:

    class ItemImage(models.Model):
        item = models.ForeignKey(Item, on_delete=models.CASCADE)
        image = models.ImageField(upload_to='products/images/')
        featured = models.BooleanField(default=False)
        thumbnail = models.BooleanField(default=False)
        active = models.BooleanField(default=True)
        updated = models.DateTimeField(auto_now_add=False, auto_now=True)



        def __unicode__(self):
            return self.item.title

media url & root:

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

1 Ответ

1 голос
/ 26 января 2020

Чтобы получить доступ к URL-адресу изображения из объекта FileField(), вам необходимо получить к нему доступ через свойство .url.

В этом случае это будет item.image.url вместо item.image, что возвращает только объект (а не нужный вам URL).

Django документы: https://docs.djangoproject.com/en/3.0/ref/models/fields/#django .db.models.fields.files.FieldFile.url

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