通过管理员控制上传图片

时间:2019-06-27 19:12:52

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

我正在尝试制作一个可以通过管理端上传图像的应用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}}>

1 个答案:

答案 0 :(得分:0)

希望您遵循official tutorial。我假设您有一个名为“ mysite”的django项目,其应用程序名为“ example”。

如果要使用/ media访问图像,则应在Django项目“ mysite”的urls.py文件中的urlpatterns中添加“ static(settings.MEDIA_URL,document_root = settings.MEDIA_ROOT)”。

如果您决定将其添加到django应用“ example”的urls.py文件中(我假设这是您所做的),则您应该使用/ example / media前缀访问这些图像。