0

我在 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/'

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

mysql数据库中显示的url用于查询

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

空文件夹 - 资源管理器

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

4

1 回答 1

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__))
于 2015-06-04T07:06:10.397 回答