Теги шаблонов Django в HTML

#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 равно, перейдите по нему так, как вы хотите.