我在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/'
在我通过表单上传后,在数据库中的我看到了网址,例如以下
但是在文件系统中我没有看到该文件,我在localhost上的测试环境中运行。我正在使用Windows操作系统。
为什么?我是否必须为该文件夹设置一些权限?如果是这样,我如何在部署时确保它在生产中有效?感谢。
答案 0 :(得分:2)
这种情况正在发生,因为MEDIA_URL
和MEDIA_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__))