Я пытаюсь отобразить метаданные об изображении в моем приложении Django.Метаданные считываются из exif-заголовка изображения, сохраняются в словаре с изображением в качестве ключа и возвращаются в шаблон с фильтром.В моем шаблоне я отображаю изображения и хотел бы отобразить отформатированные метаданные для этого изображения.Пока что я могу заставить его отображать только словарь для этого изображения (например, {'key1': 'value', 'key2', 'value'}
).Я хотел бы, чтобы это выглядело как key1: value, key2: value
.
#template.html
{% block content %}
{% for image in images %}
{{ exif|get_item:image }}
<p><img src="{{ image.image.url }}" width="500" style="padding-bottom:50px"/></p>
{% endfor %}
{% endblock %}
#views.py
def image_display(request):
images = image.objects.all()
exif = {}
for file in images:
cmd = 'exiftool ' + str(file.image.url) + ' -DateTimeOriginal -Artist'
exifResults = (subprocess.check_output(cmd)).decode('utf8').strip('\r\n')
exif[file] = dict(map(str.strip, re.split(':\s+', i)) for i in exifResults.strip().splitlines() if i.startswith(''))
context = {
'images': images,
'exif': exif,
}
@register.filter
def get_item(dictionary, key):
return dictionary.get(key)
return render(request, 'image_display.html', context=context)
Я думал, что мог бы просто сделать {% for key, value in exif|get_item:image.items %}
в шаблоне, но это возвращает ошибку:
VariableDoesNotExist at /reader/image_display
Failed lookup for key [items] in <image: image1>
Есть лиМожно ли отформатировать словарь, возвращаемый фильтром, или выполнить итерацию по нему так, чтобы я мог отформатировать каждую пару ключ-значение?