2013-07-14 3 views
1

я пытаюсь использовать некоторые изображения в моем views.py, я сделал это,django static_root understanding - IOError - ??

from django.conf import settings 
image = settings.STATIC_ROOT + "images/test.png" 
fp = open(image, 'rb') 

, но он говорит:

IOError at/
(2, 'No such file or directory') 

в моем settings.py, у меня есть:

STATIC_ROOT = os.path.join(PROJECT_PATH, "static") 
STATIC_URL = '/static/' 

что мне здесь не хватает? STATICFILES_DIRS пуст, но в шаблонах я работал до сих пор, но теперь хочу получить изображение на своих view.py.

+0

'STATIC_ROOT' должен заканчиваться символом'/'. 'os.path.join (PROJECT_PATH," static/")' –

+0

@AamirAdnan, разве это имеет значение? – doniyor

+1

Да, я так думаю. Предположим, что settings.STATIC_ROOT = '/ abc/static', поэтому прямо сейчас ваш путь будет «settings.STATIC_ROOT +» images/test.png «' = '/ abc/staticimages/test.png', но он должен быть'/abc/static/images/test.png' –

ответ

1

Вы можете попробовать:

from django.contrib.staticfiles.views import serve 
serve(request, 'images/test.png') 

Если память мне правильно Тхо это будет работать только если отладка верно.

Но это звучит, как его не найти путь, чтобы найти путь тэ проекта ...

Print(normpath(join(dirname(__file__), '..')))

Это должно помочь вам определить и устранить проблему.

+0

вы можете объяснить, как использовать эту команду и где ее использовать. – doniyor

+1

просто добавьте print (normpath (join (dirname (__ file__), '..'))) в вашем представлении, если вам нравится, и на выходе вашего терминала он будет распечатан. print («hello») и т. д. только выходы. –

+0

normpath, join, dirname все отображают ошибку как неопределенную переменную – doniyor

Смежные вопросы