django admin 后台上传图片

0

1、在models.py文件中定义如下字段

icon=models.ImageField(u'图标',upload_to='img/%Y/%m/%d')

2、在setting.py文件中设置如下:

MEDIA_URL='/uploads/'
MEDIA_ROOT=os.path.join(BASE_DIR, 'uploads')

3、在urls.py文件中设置:

from django.conf.urls.static import static
from django.conf import settings

urlpatterns = [
            ........此处省略n个字
        ]+static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

最后的效果会是:http://www.xxxxxx.com/uploads/img/2016/10/28/xxxxx.jpg

        
        这样就会把上传后的url地址存入数据库了。。

你可能感兴趣的

天狼星_青孤 · 2017年04月17日

请问出现如下的这个,是什么原因呢?
File "F:pyprojectcsadminTextcsadminTexturls.py", line 30, in <module>

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

TypeError: 'module' object is not callable

回复

0

你先在setting.py 中找到TEMPLATES = [


   ....
    'OPTIONS': {
        'context_processors': [
           ......
          添加‘django.core.context_processors.media’,
        ],
    },
},

]

2.试试在 urls.py

from django.views.static import serve
from 项目名称.setting import MEDIA_ROOT
urlpatterns=[
   ....
url(r'^media/(P<path>.*)$',serve,{"document_root":MEDIA_ROOT}),
]
xiaomayi2012 作者 · 2017年04月17日
0

你不能直接urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)这样写 ,按我上面的那种格式 写 直接写会出错

xiaomayi2012 作者 · 2017年04月17日
0

按这种方式:

urlpatterns = [
            ........此处省略n个字
        ]+static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
xiaomayi2012 作者 · 2017年04月17日
凛华夜子 · 2018年06月25日

网上翻了半天终于在这里解决了...感谢

回复

载入中...