在djang中试图从数据库中显示时,图像断开

2024-09-30 10:34:57 发布

您现在位置:Python中文网/ 问答频道 /正文

在设置.py在

STATIC_URL = '/static/'
MEDIA_ROOT='/home/akanksha/bookepdia/media/'
MEDIA_URL = '/media/' 
TEMPLATE_DIRS = ('/home/akanksha/bookepdia/templates',)

在模型.py在

^{pr2}$

在网址.py在

urlpatterns = patterns('',

url(r'^$', 'bookepdia.views.home', name='home'),
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

在视图.py在

def home(request):
    photos = Image.objects.all()
    return render_to_response('display.html', {'photos' : photos})

在显示.html在

<html>
<h3>Images of books</h3>
<img src="/media/images/image_name" />
{% for p in photos %}
    <img src="{{p.photo.url}}" />
{% endfor %}
</html>

现在,我的问题是,当我添加了/media/images/image_name时,会显示图像,但是当我使用{p。照片.url}}图像显示为断开图标。 我发现它的路径是/home/akanksha/bookepdia/media/images/image\u name。 现在,我想对每个url进行编辑,使其作为/media/images/image_name工作。在


Tags: namepyimageurlhomehtmlstaticroot
2条回答

ImageField的upload_to属性不是绝对路径,它是相对于MEDIA_ROOT设置的。在

你的情况应该是这样的:

photo = models.ImageField(upload_to='images')

请参阅文档:https://docs.djangoproject.com/en/1.8/ref/models/fields/#django.db.models.FileField.upload_to

FileField.upload_to

A local filesystem path that will be appended to your MEDIA_ROOT setting to determine the value of the url attribute.

不应该给ImageFieldupload_to的绝对路径,它应该是相对于媒体根的路径。在

相关问题 更多 >

    热门问题