Django 2.1 Media files Problems of use

我们在models.py中使用了ImageField,但是使用时发现总是404,网上的教程大部分是老版本Django的方法。

新方法:

引用之处:

<!-- {{ MEDIA_URL }}是前缀,即/media/ -->
<!-- {{ article.cover }} 是我自己预设的参数本身 -->
<img src="{{ MEDIA_URL }}{{ article.cover }}" class="article-cover"></img>
<!-- 结果:/media/article/2018/11/1.jpg -->

settings.py

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',
                  # 加上下面这一行
                'django.template.context_processors.media',
            ],
        },
    },
]
...
# 加上下面这两行
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

urls.py

from django.urls import path
from . import views
# 加上下面这两行
from django.conf.urls.static import static
from django.conf import settings

urlpatterns = [
    path('', views.index, name='index'),
    # 后面加上下面这行
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

end

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容