#python #django #django-views
Вопрос:
Я пытаюсь указать источник изображения на тег пути к файлу , который я указал в своем views.py
, но по какой-то причине он не будет загружаться в индексный файл проекта, а будет загружаться на страницах конкретных проектов. И все мои другие теги на той же странице работают, так что я не уверен, что я делаю не так?
lt;img src="{{ filepath }}" class="card-img-top" alt="Project Image"gt;
Отображается на странице, lt;img src="" class="card-img-top" alt="Project Image"gt;
на которой отображается текст alt.
views.py
def project_details(request, slug): project = Project.objects.get(slug=slug) filepath = "/static/img/" project.title ".png" context = {'project': project, 'filepath': filepath} return render(request, 'projects/project_details.html', context)
Комментарии:
1. Передаете ли вы его в шаблон через контекст? Можете ли вы поделиться всей функцией просмотра?
2. Я обновил вопрос с помощью функции @Marco
3. Вы уверены, что
project.title
это допустимая строка? Какое значение имеет путь к файлу при отладке представления?4. project.title находится в базе данных и работает в заголовке карты, поэтому я подумал, что для этого тоже было бы неплохо. Как бы вы продолжили отладку представления, извините?
5. Код работает совершенно нормально. Я подозреваю инвалида
title
или что-то в этом роде. Вы все равно должны думать об этомfilepath
, так как это должна быть действительная строка в кодировке URL или слиток и т. Д.
Ответ №1:
Итак, для тех, кто сталкивается с той же проблемой, я нашел решение, которое сработало:
src="{{"/static/img/"|add:project.title|add:".png"}}"
Однако для этого требуется, чтобы изображение было заглавным. Поскольку значение project.title равно, перейдите по нему так, как вы хотите.