0

我有这个模型:

class MyModel(Model):

    other_field = CharField(max_length=200)
    image = ImageField(upload_to='images/', null=True, blank=True, )

我的项目设置文件中有这个:

MEDIA_URL = '/media/'  # new
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')  # new

我的媒体文件夹中还有一个“图像”文件夹。这些是一些文件的地址。为确保您一切正常:

-myproject>myproject>settings.py

-myproject>媒体>图像>myimage1.png

-myproject>媒体>图像>myimage2.png

我进入外壳

Python manage.py shell

然后:

from myapp.models import MyModel
model_ins = MyModel.objects.get(id=1)
model_ins.image.url

它返回:

'/media/images/myimage1.png'

我有这个 HTML 模板(简化):

{% load static %}<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
</head>
<body>
    <img src="{{ mymodel_ins.image.url }}">
</body>
</html>

它没有显示任何图像。是什么原因?

4

1 回答 1

0

我找到了答案

这应该添加到项目的主 url 文件中:

if settings.DEBUG:  # new
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

但是,我仍然不明白其中的逻辑和含义

于 2020-06-14T16:45:30.540 回答