Settings.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>
现在,我的问题是当我添加/ media / images / image_name时会显示图像但是当我使用{{p.photo.url}}时,图像会显示为损坏的图标。 我发现它的路径为/ home / akanksha / bookepdia / media / images / image_name。 现在,我想为每个URL编辑它,以便它作为/ media / images / image_name。
答案 0 :(得分:2)
你不应该在upload_to
中给ImageField
提供绝对路径,它应该是相对于你的MEDIA_ROOT的路径。
答案 1 :(得分:1)
if(window.localStorage.length > 0) {
var foo = '';
for (var i = 0, len = localStorage.length; i < len; i++) {
foo += localStorage.getItem(localStorage.key(i));
}
//con
$('#nv').html(foo);
}
属性不是绝对路径,而是相对于upload_to
设置。
在你的情况下它应该是这样的:
MEDIA_ROOT
请参阅文档:https://docs.djangoproject.com/en/1.8/ref/models/fields/#django.db.models.FileField.upload_to
<强> FileField.upload_to 强>
将附加到MEDIA_ROOT设置的本地文件系统路径,以确定url属性的值。