{{ MEDIA_URL }}{{ course_org.image }}页面显示图片


发布时间:2019-02-15 13:08    作者: 晖哥哥   已过去:2 年,3 月   阅读总量:352 已被赞:0


如何将image Field转换成图片地址

 数据库中image以字符串格式保存的,是相对路径,直接取是取不出来的,必须补全路径

当然前提条件是你必须在建模的收获有个存储图片的字段例如:

image = models.ImageField('封面图',upload_to='org/%Y%m',max_length=100)

data-url="{{ MEDIA_URL }}{{ course_org.image }}"
MEDIA_URL = '/media/',这个是之前settings中设置好了

要向使用{{ MEDIA_URL }},要先在settings中TEMPLATES 里面添加media处理器:

 'django.template.context_processors.media',

 然后也要添加处理图片相应路径的url

复制代码

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                #添加图片处理器,为了在课程列表中前面加上MEDIA_URL
                'django.template.context_processors.media',
            ],
        },
    },
]

复制代码

 urls.py

复制代码

from django.views.static import serve
from MxOnline.settings import MEDIA_ROOT


# 处理图片显示的url,使用Django自带serve,传入参数告诉它去哪个路径找,我们有配置好的路径MEDIAROOT
re_path(r'^media/(?P<path>.*)', serve, {"document_root": MEDIA_ROOT })

复制代码

四个地方

 

点赞

0




登陆后方可评论