找不到Django图像src [英] Django image src not found

查看:95
本文介绍了找不到Django图像src的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  \项目结构
-app
\项目
-settings.py
-...
\图片
-panda.jpg

我已将图片上传到图片

 类商品(models.Model):
pic =模型。 ImageField(upload_to ='picture')

以及数据库中的数据 picture / panda.jpg



现在,如何在html中显示它?



我用html编写:

 < p> {{each.pic}}< ; / p> 
< img src =’{{each.pic.url}}’/>

浏览器中的源代码是:

  picture / panda.jpg 
< img src ='picture / panda.jpg'/>

图片已链接到 http:// localhost:8000 / my_sell / picture / panda.jpg 。并且无法显示。



我该如何解决,我尝试在 settings.py media_root

解决方案

我没有检查这个,但是几乎所有代码都来自我的工作项目:)。



settings.py

  MEDIA_URL ='/ media /'
MEDIA_ROOT =(
os.path.join(BASE_DIR,'media')

模型

 从django.core.files.storage导入FileSystemStorage 
从django.conf导入设置


image_storage = FileSystemStorage(
#物理文件位置ROOT
location = u'{0} / my_ sell /'。format(settings.MEDIA_ROOT),
#文件
的网址base_url = u'{0} my_sell /'。format(settings.MEDIA_URL),



def image_directory_path(实例,文件名):
#文件将上传到MEDIA_ROOT / my_sell / picture /< filename>
return u'picture / {0}'。format(filename)


class Goods(models.Model):
pic = models.ImageField(upload_to = image_directory_path,storage = image_storage)

视图

  from django.shortcuts import渲染

def view_picture(request) :
c = dict()
c ['goods'] = Goods.objects.all()
return render(request,'template.html',c)

模板



< pre class = lang-html prettyprint-override> {%商品中的商品%}
{%if product.pic%}
< img src = {{ product.pic.url}}>
{%endif%}
{%endfor%}

编辑:不要忘记将MEDIA_URL添加到根 urls.py

  if settings.DEBUG 
urlpatterns + = static(settings.MEDIA_URL,document_root = settings.MEDIA_ROOT)


\project_structure
-app
\project
  -settings.py
  -...
\picture
  -panda.jpg

I've uploaded the picture into picture.

class Goods(models.Model):
    pic = models.ImageField(upload_to='picture')

And the data in database is picture/panda.jpg

Now,how can i show it in html?

I wrote this in html:

<p>{{each.pic}}</p>
<img src='{{ each.pic.url }}' />

And the source codes in browser is this:

picture/panda.jpg
<img src='picture/panda.jpg' />

The image was linked to http://localhost:8000/my_sell/picture/panda.jpg.And couldn't show.

How can i solve this,I've tried add media_root in settings.py and useless.

解决方案

I did not check this but almost all code are taken from my working projects :).

settings.py:

MEDIA_URL = '/media/'
MEDIA_ROOT = (
    os.path.join(BASE_DIR, 'media')
)

models:

from django.core.files.storage import FileSystemStorage
from django.conf import settings


image_storage = FileSystemStorage(
    # Physical file location ROOT
    location=u'{0}/my_sell/'.format(settings.MEDIA_ROOT),
    # Url for file
    base_url=u'{0}my_sell/'.format(settings.MEDIA_URL),
)


def image_directory_path(instance, filename):
    # file will be uploaded to MEDIA_ROOT/my_sell/picture/<filename>
    return u'picture/{0}'.format(filename)


class Goods(models.Model):
    pic = models.ImageField(upload_to=image_directory_path, storage=image_storage)

views:

from django.shortcuts import render

def view_picture(request):
    c = dict()
    c['goods'] = Goods.objects.all()
    return render(request, 'template.html', c)

templates:

{% for product in goods %} 
    {% if product.pic %}    
        <img src="{{ product.pic.url }}">
    {% endif %}
{% endfor %}

Edited: Don't forget to add MEDIA_URL into root urls.py

if settings.DEBUG
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

这篇关于找不到Django图像src的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆