Python Django图像上载成功,url写入数据库,但没有图像显示上载目标文件夹
我在Django有表格Python Django图像上载成功,url写入数据库,但没有图像显示上载目标文件夹,python,django,windows,file-upload,django-uploads,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'
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\u TO='business/images'
在settings.py中,我对媒体根进行了如下定义
# Media Root - uploaded images
MEDIA_ROOT = '/uploads/'
在数据库中,在我通过表单进行上传之后,我看到了如下URL示例
但是,在文件系统中,我没有看到该文件,而是在本地主机上的测试环境中运行。我正在使用Windows操作系统
为什么呢?我必须设置文件夹的一些权限吗?如果是这样,我如何确保在部署时也能在生产环境中工作?谢谢。发生这种情况是因为
MEDIA\u URL
和MEDIA\u ROOT
配置不正确。将以下代码放入settings.py中
MEDIA_URL = '/uploads/'
MEDIA_ROOT = os.path.join(BASE_DIR, "uploads")
注意
如果设置文件中未定义BASE\u DIR
,请将以下代码放在文件顶部:
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
这是预期在部署时会改变还是应该正常工作?另外,请您指出我们需要设置这一行的文档,特别是
os.path.join(BASE_DIR,“uploads”)
别介意我在这里看到它,我错过了“完整路径”,他们有基于linux的example@SaherAhwal这是否会在部署时更改。。。?这取决于您计划保存上载文件的位置。如果要将它们保存在后端服务器中,则选择“否”。如果要将它们保存在其他(前端)服务器中,则选择“是”。谢谢,就是这样:)回答得好。若你们并没有指定媒体url,上传的图像将不会存储在指定的文件夹中,即使调用服务器成功并且图像的路径存储在db列中。