Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django图像上载成功,url写入数据库,但没有图像显示上载目标文件夹_Python_Django_Windows_File Upload_Django Uploads - Fatal编程技术网

Python Django图像上载成功,url写入数据库,但没有图像显示上载目标文件夹

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'

我在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\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列中。