Python 在django中试图从数据库显示图像时图像被破坏

Python 在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

设置.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.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仍将是错误的。