Python 如何访问通过Django表单上传的媒体文件?

Python 如何访问通过Django表单上传的媒体文件?,python,django,Python,Django,我正在接受来自Django表单中用户的图像。如何访问上载的图像以在web浏览器中显示 这是我在settings.py中的设置 MEDIA_ROOT = os.path.join(BASE_DIR,'media') MEDIA_URL = '/media/' 这是在我的模型中 class Hotel(models.Model): name = models.CharField(max_length=50) image = models.ImageField(upload_to="

我正在接受来自Django表单中用户的图像。如何访问上载的图像以在web浏览器中显示

这是我在settings.py中的设置

MEDIA_ROOT = os.path.join(BASE_DIR,'media')
MEDIA_URL = '/media/'
这是在我的模型中

class Hotel(models.Model):
    name = models.CharField(max_length=50)
    image = models.ImageField(upload_to="images/")
此外,我还添加了

if settings.DEBUG:
    urlpatterns +=static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)
在URL.py中

我试图访问图像作为

def image_view(request):
    if request.method=='POST':
        farm = hotelForm();
        form = hotelForm(request.POST,request.FILES)
        if form.is_valid():
            form.save()
            modelff = Hotel(name=request.POST['name'],image = request.FILES['image'])
            # print(modelff.image.url)

        return render(request,'djangoform.html',{"form":farm,"uploaded_data_url":modelff.image.url})

    else:
        form = hotelForm()
        return render(request,'djangoform.html',{"form":form})
在我的模板中,我以
的形式访问图像。但是图像没有显示,控制台显示图像未找到

附:我见过 但他们似乎都帮不了我。我找不到如何在路径中包含
'images/'
。我的
上传的\u数据\u url
显示
/media/Screenshot%202020-04-18%20at%206.39.24%20PM.png
而我希望它显示
/media/images/Screenshot%202020-04-18%20at%206.39.24%20PM.png

问题在哪里

另外,如果这个问题中有类似(
f.read()
)的东西,那就太好了


编辑:因为从一个答案来看,这个问题似乎不清楚,我想澄清一下,上面的内容正是我所尝试的,我真的不知道它是否正确。其次,这样做的全部目的是从用户那里获取图像,对其进行处理,并将原始图像和最终图像显示给用户。因此,如果有任何其他方法,你必须这样做,请分享

如果上传的\u data\u url显示此
/media/Screenshot%202020-04-18%20at%206.39.24%20PM.png
则表示图像保存在
媒体
目录下。这是预期的,因为您的conf是
MEDIA\u URL='/MEDIA/'

如果您希望它成为
/media/images/Screenshot%202020-04-18%20at%206.39.24%20PM.png
,请更改为此
media\u URL='/media/images/'

上面的问题是,它会干扰所有其他媒体文件,因此更简单的解决方案是将
/media/
替换为
/media/images/

在您的
视图中调整此选项。py

url = str(modelff.image.url)
modUrl = url.replace("/media/","/media/images/")
return render(request,'djangoform.html',{"form":farm,"uploaded_data_url":modUrl l})

但是我想bug在
modelf
行中。这就是我“尝试”的。由于
酒店
模型明确规定了
上传到=图像
它应该上传到那里,事实上,通过表单上传的图像与原始图像不同。请看一下您的设置中是否有DEBUG=True.py?是的,我有,我真的不知道哪里会出错。您确定数据库中没有返回错误URL的现有数据。你也可以看看,看看这是否有帮助。您是否也迁移了您的模型?