Django 模板不显示 ImageField
Django template doesn't display ImageField
我有一个模型,其中有一个 ImageField 但在模板中没有出现。图片上传成功(in media_root/one/image.jpg)
Settings.py:
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "media_root")
Urls.py
(...)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += staticfiles_urlpatterns()
Models.py
class myModel1(models.Model):
__(...)
__image = models.ImageField(upload_to='one', default="")
__(...)
在我的模板上,我做了这个:
<img src="{{ myModel1.image.url }}" alt="{{ myModel1.name }} image" />
而 HTML 就像:
(...)**src="/media/one/photo_p33Mo8a.jpg"**(...)
但是没有显示图片
未找到错误 404:
GET http://localhost:8000/media/one/photo_p33Mo8a.jpg 404 (NOT FOUND)
有人可以帮助我吗?
PD:抱歉,我是第一次在 Whosebug 上写文章。
不得不说在media_root/one/里面出现了图片,但是文件夹/media/还是空的
文件夹结构:
项目:
___app_folder
________media
________models.py.....
___media_root
________one
____________image.jpg
___mainFolder(设置、网址..)
___static_root(...)
试试你的模板:
<img src="{{ MEDIA_URL }}{{ myModel1.image }}" alt="{{ myModel1.name }} image" />
*编辑
看来您必须在 urls.py 文件中添加:
from django.conf import settings
from django.views.static import serve
# ... the rest of your URLconf goes here ...
if settings.DEBUG:
urlpatterns += [
url(r'^media/(?P<path>.*)$', serve, {
'document_root': settings.MEDIA_ROOT,
}),
]
编辑2
您的 ROOT_MEDIA 路径应该是:
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "media_root")
我有一个模型,其中有一个 ImageField 但在模板中没有出现。图片上传成功(in media_root/one/image.jpg)
Settings.py:
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "media_root")
Urls.py
(...)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += staticfiles_urlpatterns()
Models.py
class myModel1(models.Model):
__(...)
__image = models.ImageField(upload_to='one', default="")
__(...)
在我的模板上,我做了这个:
<img src="{{ myModel1.image.url }}" alt="{{ myModel1.name }} image" />
而 HTML 就像:
(...)**src="/media/one/photo_p33Mo8a.jpg"**(...)
但是没有显示图片
未找到错误 404:
GET http://localhost:8000/media/one/photo_p33Mo8a.jpg 404 (NOT FOUND)
有人可以帮助我吗?
PD:抱歉,我是第一次在 Whosebug 上写文章。
不得不说在media_root/one/里面出现了图片,但是文件夹/media/还是空的
文件夹结构:
项目:
___app_folder
________media
________models.py.....
___media_root
________one
____________image.jpg
___mainFolder(设置、网址..)
___static_root(...)
试试你的模板:
<img src="{{ MEDIA_URL }}{{ myModel1.image }}" alt="{{ myModel1.name }} image" />
*编辑
看来您必须在 urls.py 文件中添加:
from django.conf import settings
from django.views.static import serve
# ... the rest of your URLconf goes here ...
if settings.DEBUG:
urlpatterns += [
url(r'^media/(?P<path>.*)$', serve, {
'document_root': settings.MEDIA_ROOT,
}),
]
编辑2
您的 ROOT_MEDIA 路径应该是:
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "media_root")