AttributeError в /media/... при запросе файла в папке media Стадия разработки Django
Когда я запрашиваю медиа файлы (.png в данном случае) в папке media в разработке, я получаю эту ошибку:
Ошибка атрибута в /media/test.png
У этого экземпляра FileResponse нет атрибута content. Используйте streaming_content вместо него.
Запрос: http://localhost:8000/media/test.png
Я добавил в шаблоны url следующее:
urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Ниже приведены настройки:
STATIC_ROOT = BASE_DIR / 'static'
STATIC_URL = '/static/'
MEDIA_ROOT = BASE_DIR / 'media'
MEDIA_URL = '/media/'
Статические файлы работают отлично.
Что я упускаю из виду? Спасибо!
hello, если у вас отладка установлена на True, вы должны использовать следующее:
сначала зайдите в настройки и установите все статические каталоги файлов в
STATICFILES_DIRS = [
list of your static file,.......,]
на втором этапе у вас должно быть следующее в вашем urls.py
urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL,document_root=settings.STATICFILES_DIRS[0])
примечание: есть разница между static_root и staticfile_dirs
static_root используется только для производства
вот моя почта для более подробного объяснения :nguewofoss@gmail.com
Я нашел проблему. В новой версии django staticfiles отображаются с потоковымHttpResponse, у которого нет атрибута content.
В своем коде я нашел следующий код, который указывает на (не существующий) атрибут content:
if b'<html' in response.content[:100].lower():
Я добавил это, чтобы решить проблему:
if not hasattr(response, 'content'):
return response
if b'<html' in response.content[:100].lower():
Спасибо всем!