我有一个应用程序,我上传图像,图像上传到一个特定的目录,但上传后工作正常如果我注意点击图像网址我得到一个错误,说
The current URL, media/gallery/2017/12/28/230-256.png, didn't match any of these
并且图片未显示在浏览器html中
尽管我在设置
Models.py
class Gallery(models.Model):
name = models.CharField(max_length=400, db_index=True)
image = models.ImageField(upload_to='gallery/%Y/%m/%d', blank=True)
class Meta:
ordering = ('name',)
def __str__(self):
return self.image.url
Views.py
def index(request):
gallery = Gallery.objects.all()
context = {
'gallery': gallery,
}
template = 'gallery.html'
return render(request, template, context)
HTML
{% if gallery.image %}
<div><a href="{{ gallery.image.url }}" title="{{gallery.name}}"><img src="{{ gallery.image.url }}"></a></div>
{% endif %}
答案 0 :(得分:0)
你的HTML必须是这样的:
{% if gallery.image %}
<div><a href="{{ MEDIA_URL }}{{ gallery.image.url }}" title="{{gallery.name}}"><img src="{{ MEDIA_URL }}{{ gallery.image.url }}"></a></div>
{% endif %}
应在settings.py
中配置 MEDIA_URL
。这应该设置为您为MEDIA_ROOT
中存储的文件提供服务的基本URL。
图像字段的URL属性仅存储图像的相对URL。
答案 1 :(得分:0)