Python 如何访问通过Django表单上传的媒体文件?
我正在接受来自Django表单中用户的图像。如何访问上载的图像以在web浏览器中显示 这是我在settings.py中的设置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="
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的现有数据。你也可以看看,看看这是否有帮助。您是否也迁移了您的模型?