处理Django Admin中的图片上传 Python

2 投票
1 回答
7118 浏览
提问于 2025-04-17 23:22

我正在Windows上用Python Django开发一个应用程序。我想在我的一个类中添加一个图片上传的字段,但遇到了错误。我需要说明的是,我需要在settings.py中提供一个相对路径,这样我才能方便地把我的代码迁移到其他平台。

我应该如何填写settings.py中的以下变量才能让它们正常工作呢?

MEDIA_ROOT = #root to my project

MEDIA_URL = #url 

在models.py中,我有:

class ProdcutImage(models.Model):
    product = models.ForeignKey(Product)
   image = models.ImageField(upload_to = "/products" )

我希望图片上传到这个文件夹:

"MY_PROJECT_ADDRESS/static/images/products"

谢谢你的帮助!

1 个回答

6

我建议你参考这个回答

需要一个最简单的Django文件上传示例

最好是把你上传的文件放到一个和静态文件不同的文件夹里,不过如果你想把它上传到这个文件夹的话:

class ProdcutImage(models.Model):
    product = models.ForeignKey(Product)
   image = models.ImageField(upload_to = "static/images/products" )

在settings.py文件中

import os
PROJECT_ROOT = os.path.realpath(os.path.dirname(__file__))

MEDIA_ROOT = PROJECT_ROOT + '/static/images/products/'
MEDIA_URL = '/media/'  #put whatever you want that when url is rendered it will be /media/imagename.jpg

然后在urls.py文件中

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


+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)  #at the end

撰写回答