Django中如何把 ImageField 转化成 url 地址
- 设置 html 中的引用
- 设置 settings 中的
数据库中是字符串。是相对路径。
模板中
![]({% static 'media/org/2016/11/imooc.png' %})
使用 MEDIA_URL 的时候,需要在
settings 的 TEMPLATES 下变量 context_processors,配置内部处理类
django.core.context_processors.media
会自动把 MEDIA_URL 注册到 html 中。
但是 django 1.8开始django.core.context_processors就已经转移到了django.template.context_processors。
django.core.context_processors¶
Built-in template context processors have been moved to django.template.context_processors.
注意两个media在settings中的设置。
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
用 chrome 查看图片有了 url 以后,就需要在 urls.py 中设定 通过 图片的url取回图片。
from django.views.static import serve
from MxOnlinePy3Django10.settings import MEDIA_ROOT
urlpatterns = [
# ......
url(r'^media/(?P<path>.*)', serve, {"document_root":MEDIA_ROOT}),
]