Django图像上传成功,url写入DB,但没有图像显示上传目标文件夹

时间:2015-06-04 07:01:13

标签: python django windows file-upload django-uploads

我在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/'
在我通过表单上传后,在数据库中的

我看到了网址,例如以下

urls shown in mysql database for query

但是在文件系统中我没有看到该文件,我在localhost上的测试环境中运行。我正在使用Windows操作系统。

empty folder - explorer

为什么?我是否必须为该文件夹设置一些权限?如果是这样,我如何在部署时确保它在生产中有效?感谢。

1 个答案:

答案 0 :(得分:2)

这种情况正在发生,因为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__))