Я использовал FileStorage Django для хранения изображения и отправил URL-адрес этого изображения из шаблона в пользовательский тег шаблона. Но я не могу получить доступ к изображению по этому адресу.
Я также попытался получить доступ к каталогу мультимедиа, чтобы получить загруженное изображение, но я получаю следующую ошибку:
IsADirectoryError at /
[Errno 21] Это каталог: 'media /'
views.py
def index(request):
context = {}
if request.method == "POST":
up_image = request.FILES['image']
fs = FileSystemStorage()
name = fs.save(up_image.name,up_image)
context['url'] = fs.url(name)
return render(request,"ind.html",context)
settings.py
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
шаблон ind.html
{% load testing %}
<p>{% fname url %}</p>
пользовательский шаблон тега testing.py
from django import template
import webbrowser
from PIL import Image
register = template.Library()
@register.simple_tag
def fname(url):
x = url[7:] #getting only the name of the file uploaded
path = 'media/'+x
with Image.open(path) as image:
width, height = image.size
return width
Я также попытался открыть изображение с пропущенным URL, но не смог заставить его работать.
Я просто пытаюсь получить доступ к загруженному изображению, чтобы выполнить его дальнейшую обработку, но сейчас я просто возвращаю ширину изображения, чтобы проверить, работает ли оно