python - Django ImageField(图像不显示)

标签 python django

我正在尝试为管理员构建一个 CMS,他可以在其中更改图像。 但到目前为止还不起作用,我找不到错误。

这里是模型,没有default.png

models.py

class Media(models.Model):
    image = models.ImageField(blank=True, null=True)

    class Meta:
        verbose_name_plural = "Photo"

    def __str__(self):
        return self.image.name

settings.py

STATIC_URL = '/static/'


STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'assets'),
)

MEDIA_URL = '/media/'

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

print(MEDIA_ROOT)

views.py

def gallery_view(request):
   return render(request, 'web/gallery.html', context={"pic": Media.objects.first()})

这是我的ImageField模板:

<img class="ui bordered image" src="{{ pic.image.url }}">

urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('webpage/', include('webpage.urls')),
    path('', include('web.urls')),
    path(r'^', include('web.urls', namespace='web')),
]


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

现在,当我print(MEDIA_ROOT)时,我的终端显示:

'Not Found: /media/default.png'

"GET /media/default.png HTTP/1.1" 404 1808"

"POST /admin/web/media/add/ HTTP/1.1" 302 0"

"GET /admin/web/media/ HTTP/1.1" 200 1282"

有人可以给我建议一下错误在哪里吗? 提前致谢。

最佳答案

仔细检查您是否在 settings.py 中添加了静态 URL 和媒体 URL 的路径。 对于静态 URL:

STATIC_URL = '/static/'
STATIC_ROOT = 'staticfiles'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

对于媒体 URL:

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

要访问显示您的图片:

 <img class="border-radius-50 profile-img" src="{{ MEDIA_URL }}{{  pic.image.url }}" alt="...">

关于python - Django ImageField(图像不显示),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59238325/

相关文章:

python - 时间序列脑电图重采样可以修复电压分辨率差的问题?

python - Pandas :查找具有第二高值的行的索引

python - 设置对象不是 JSON 可序列化的

django - 在 django 开发期间提供用户上传的文件

python - Django:如何创建多语言网站

python - Django 的管理 - 多对多字段混淆

python - 使用 QSignalMapper 和实例方法将 PySide 连接到信号

python - 如何使用 python urllib 忽略 Windows 代理设置?

python - 如何向基于 Django 类的通用 View 装饰器添加参数?

python - 在 Django 模板中按键访问字典