Django 图片上传成功,url 已写入数据库,但没有图片显示上传目标文件夹

Django image upload succeeds with url written to DB but no image shows upload target folder

我在 Django 中有表单

class BusinessForm(forms.Form):
    name = forms.CharField( required = True,
                             max_length=MAX_NAME_LENGTH,                                
                             widget=forms.TextInput(attrs={'placeholder': 'e.g Boston Market'}))        
    image = forms.ImageField()

属于这个型号

class Business(models.Model):
    """ Describes Bussines data type """    
    name = models.CharField(max_length=BUS_NAME_LENGTH)         

    img = models.ImageField( upload_to = UPLOAD_TO )

其中 UPLOAD_TO = 'business/images'

并且在 settings.py 中我将媒体根定义如下

# Media Root - uploaded images
MEDIA_ROOT = '/uploads/'

在我通过表单上传后,在数据库中我看到了以下网址

但是在文件系统中我没有看到该文件,我在本地主机上的测试环境中 运行。我正在使用 Windows OS.

这是为什么?我必须对文件夹设置一些权限吗?如果是这样,我还如何确保在部署时它能在生产环境中运行?谢谢。

发生这种情况是因为 MEDIA_URLMEDIA_ROOT 没有正确配置。将以下代码放入您的 settings.py

MEDIA_URL = '/uploads/'
MEDIA_ROOT = os.path.join(BASE_DIR, "uploads")

备注

如果您的设置文件中未定义 BASE_DIR,请将以下代码放在文件顶部:

import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))