내 템플릿에서 이미지 입력을받는 사용자 지정 태그를 추가 한 다음 해당 이미지와 높이 또는 너비를 설명하는 클래스를 출력하려고합니다.
내 코드는 다음과 같습니다.
템플릿 :
{% load custom_tags %}
{% image_size_class "MANAGEMENT/image.jpg" %}
맞춤 태그 :
from django import template
from PIL import Image
from django.templatetags.static import static
register = template.Library()
@register.simple_tag
def image_size_class(pattern):
pattern_url = static(pattern)
img = Image.open(pattern_url)
width, height = img.size
if width > height:
class_tag = "wide"
else:
class_tag = "tall"
return '<img src="' + pattern_url + '"' + ' class="' + class_tag + '">'
원하는 결과 :
<img src="/static/MANAGEMENT/image.jpg" class="wide">
실제로 발생하는 것은 PIL에서 오류가 발생하는 것입니다.
[Errno 2] No such file or directory: u'/static/MANAGEMENT/image.jpg'
PIL이 내가 원하는 파일을 찾을 수없는 것 같지만 어디에서 찾고 있는지 잘 모르겠습니다! 어떤 도움이라도 대단히 감사하겠습니다.
문제는 PIL이 디스크의 "/ static /"폴더에 액세스하려고 시도하는 것입니다. 다음과 같이 파일의 실제 경로를 제공해야합니다.
import os
from django.conf import settings
...
@register.simple_tag
def image_size_class(pattern):
pattern_url = static(pattern)
file_path = os.join(settings.STATIC_ROOT, pattern)
img = Image.open(file_path)
width, height = img.size
if width > height:
class_tag = "wide"
else:
class_tag = "tall"
return '<img src="' + pattern_url + '"' + ' class="' + class_tag + '">'
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다