Python 在django中试图从数据库显示图像时图像被破坏
设置.pyPython 在django中试图从数据库显示图像时图像被破坏,python,django,Python,Django,设置.py STATIC_URL = '/static/' MEDIA_ROOT='/home/akanksha/bookepdia/media/' MEDIA_URL = '/media/' TEMPLATE_DIRS = ('/home/akanksha/bookepdia/templates',) Model.py class Image(models.Model): title = models.CharField(max_length=255) photo = models.Ima
STATIC_URL = '/static/'
MEDIA_ROOT='/home/akanksha/bookepdia/media/'
MEDIA_URL = '/media/'
TEMPLATE_DIRS = ('/home/akanksha/bookepdia/templates',)
Model.py
class Image(models.Model):
title = models.CharField(max_length=255)
photo = models.ImageField(upload_to='/home/akanksha/bookepdia/media/images/')
Url.py
urlpatterns = patterns('',
url(r'^$', 'bookepdia.views.home', name='home'),
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Views.py
def home(request):
photos = Image.objects.all()
return render_to_response('display.html', {'photos' : photos})
display.html
<html>
<h3>Images of books</h3>
<img src="/media/images/image_name" />
{% for p in photos %}
<img src="{{p.photo.url}}" />
{% endfor %}
</html>
书籍意象
{照片中p的百分比%}
{%endfor%}
现在,我的问题是,当我添加了/media/images/image_name时,会显示图像,但当我使用{p.photo.url}时,图像会显示为断开的图标。
我发现它的路径是/home/akanksha/bookepdia/media/images/image\u name。
现在,我想为每个url编辑它,使其作为/media/images/image\u name工作
upload\u to
ImageField的属性不是绝对路径,它是相对于MEDIA\u ROOT
设置的
在您的情况下,应该是这样的:
photo = models.ImageField(upload_to='images')
见文件:
文件字段。上传到
一个本地文件系统路径,将附加到媒体根设置中,以确定url属性的值
ImageField的
upload\u to
属性不是绝对路径,它是相对于MEDIA\u ROOT
设置的
在您的情况下,应该是这样的:
photo = models.ImageField(upload_to='images')
见文件:
文件字段。上传到
一个本地文件系统路径,将附加到媒体根设置中,以确定url属性的值
您不应该在
ImageField
中为upload\u to
指定绝对路径,它应该是相对于媒体根目录的路径。您不应该在ImageField
中为upload\u to
指定绝对路径,它应该是相对于媒体根目录的路径。在生成的display.html中,您在{{p.photo.url}
中看到了什么?是不是/home/akanksha/bookepdia/media/images/
?是的,这正是我在生成的display.html中看到的,你看到了什么来代替{{p.photo.url}
?是不是/home/akanksha/bookepdia/media/images/
?是的,这正是我在做了更改后看到的我尝试过的,但它仍然将图像显示为损坏的图标,现在是{p.photo.url}
?与之前的/home/akanksha/bookepdia/media/images/images\u name相同您上传了新图像吗?在upload\u to
更改之前上载的图像未受影响我没有上载任何新图像。在上载到更改之前上载的图像没有更改。我在进行更改后尝试过,但它仍将图像显示为损坏的图像以及{p.photo.url}
now?与之前的/home/akanksha/bookepdia/media/images/image\u name相同您是否上传新图像?在upload\u to
更改之前上载的图像未受影响我没有上载任何新图像。在上载\u to更改之前上载的图像没有任何更改。我认为在这两种情况下,其行为都相同。您必须上载新图像,使用旧upload\u上传到
路径的图像不会受到该更改的影响-这意味着URL仍将是错误的。我认为在任何情况下,它的行为都是相同的。您必须上传新图像,使用旧upload\u上传到
路径的图像不会受到该更改的影响-这意味着URL仍将是错误的。