首页 > 解决方案 > 包含 MEDIA_ROOT 设置时找不到 Django 管理页面

问题描述

这是我的第一个问题,所以请指出正确的方向,以防我错过重要的事情☺️

所以我的问题如下:我目前正在使用 Django 创建一个网站,该网站应该列出数据库中的各种项目。每个项目都有与之关联的图片。该图片的路径保存在数据库中(每张图片都添加models.ImageField()到项目模型中)。为了为他们服务,我MEDIA_ROOT = os.path.join(BASE_DIR, 'main/media')添加settings.py了以下代码段并将以下代码段添加到我urlpatterns的 in 中urls.py+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

现在到了问题的关键:一切正常,除了我现在无法打开我的管理面板。媒体文件在项目概述中按预期提供,但是当我尝试打开 /admin 页面时,我收到以下错误消息:

Page not found (404)
“/Users/.../main/media/admin” does not exist
Request Method: GET
Request URL:    http://127.0.0.1:8000/admin/
Raised by:  django.views.static.serve

一旦我+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)从我的 url 模式中删除,管理页面就会再次正常工作,但是不再提供媒体文件。

有人可以告诉我我在这里破坏了什么吗?非常感谢!

标签: pythondjangostaticmedia

解决方案


我有同样的问题。我在我的网站上有一个链接,当按下该链接时将我带到管理面板。

错误是我错过了一个斜杠。

这不起作用:

<a href="/admin">Admin</a>

这有效:

<a href="/admin/">Admin</a>


推荐阅读