【问题标题】:Upload an image via Admin control通过管理员控制上传图片
【发布时间】:2019-06-27 19:12:52
【问题描述】:

我正在尝试制作一个可以通过管理端上传图片的应用程序,localhost:8000/admin/example,但是当我上传图片时,当我转到图片 URL 时,它会给我一个 404 错误。

我是 Django 和 python 的新手,所以我正在尝试了解它们。

这是我的模型、URL 和设置

models.py

item_image = models.ImageField(upload_to = "static/images/products" )

urls.py

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

from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('<int:item_id>/', views.detail, name='detail'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

settings.py

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
PROJECT_ROOT = os.path.realpath(os.path.dirname(__file__))
MEDIA_ROOT = PROJECT_ROOT + '/static/images/products/'
MEDIA_URL = '/media/'

html文件

<img src={{item.item_image.url}}>

【问题讨论】:

  • 能否将错误信息添加到问题中?
  • 错误信息截图:https://imgur.com/VofsMTN
  • 问题可能出在您的 urls.py 上。我试图复制问题,发现您正在尝试在 django 应用程序的 urls.py 文件中添加静态文件路径。因此,您应该在 url 中的 /media 之前添加应用程序的名称,例如 /example/media/static/images/products/image_name.jpg。如果你想从 /media 访问图片,你应该在 django 'project' 而不是 app 的 urls.py 中添加“static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)”。

标签: python django django-models django-views django-imagekit


【解决方案1】:

希望你关注official tutorial。我假设您有一个名为“mysite”的 django 项目和一个名为“example”的应用程序。

如果您想使用 /media 访问图像,您应该将“static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)”添加到 django 项目“mysite”的 urls.py 文件中的 urlpatterns。

如果您决定将其添加到 django 应用程序“示例”的 urls.py 文件中(我假设您已经这样做了),您应该使用 /example/media 前缀访问图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 2017-08-02
    • 1970-01-01
    • 1970-01-01
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多