Получение ошибки Обратное для изображения, не найденного в django - PullRequest
0 голосов
/ 30 апреля 2020

Я хочу отобразить загруженные изображения в моем файле шаблона, но я получаю эту ошибку Reverse for 'portfolio/steve-jobs.jpg' not found. 'portfolio/steve-jobs.jpg' is not a valid view function or pattern name., мои изображения в папке mysite/uploads/portfolio/ Может кто-нибудь, пожалуйста, помогите мне, как решить эту ошибку? здесь я загрузил весь мой код template.html здесь

{% for portfolio_data in portfolio %}
      <div class="col-lg-4 col-6 mb-4 shuffle-item">
        <div class="position-relative rounded hover-wrapper">
          <img src="{% url  portfolio_data.image %}" alt="portfolio-image" class="img-fluid rounded w-100">
          <div class="hover-overlay">
            <div class="hover-content">
              <a class="btn btn-light btn-sm" href="{{ portfolio_data.url }}" target="_blank">view project</a>
            </div>
          </div>
        </div>
      </div>
      {% endfor %}

1 Ответ

1 голос
/ 30 апреля 2020

Похоже, вы передаете объект изображения в функцию url.

url ожидает имя URL (как определено в urls.py), а не объект.

Объект изображения portfolio_data.image должен иметь метод url, в зависимости от настроенных файлов * stati c.

Попробуйте удалить тег шаблона URL и просто выполните:

<img src="{{ portfolio_data.image.url }}" alt="portfolio-image" class="img-fluid rounded w-100">

Причина слегка странного сообщения об ошибке заключается в том, что объект изображения portfolio_data.image имеет метод __repr__, который возвращает имя файла. В итоге получается, что Django не может найти путь , но на самом деле он не может найти URL с именем объекта , который имеет строковое представление пути объекта.

Стоит прочитать больше об изменении URL Django на , чтобы понять это подробнее, и помните, что {% url %} - это тег шаблона, заключающий в себе reverse.

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