Django模板不显示ImageField

时间:2015-12-06 12:49:00

标签: python django imagefield

我有一个模型,其中有一个ImageField但模板中没有出现。上传图像正常(在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:抱歉,我第一次在stackOverFlow上写作。

必须在media_root / one /中显示图片,但文件夹/ media /仍为空。

文件夹结构: Proyect:
___app_folder
________media
________ models.py ....
___media_root
________one
____________ image.jpg的
___ mainFolder(设置,网址..)
___ static_root(...)

1 个答案:

答案 0 :(得分:1)

尝试你的tremplate:

<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,
        }),
   ]

<强> EDIT2

您的ROOT_MEDIA路径应为:

MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "media_root")