处理Django Admin中的图片上传 Python
我正在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
我建议你参考这个回答
最好是把你上传的文件放到一个和静态文件不同的文件夹里,不过如果你想把它上传到这个文件夹的话:
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