【问题标题】:Django image src not found找不到 Django 图像源
【发布时间】:2017-04-15 15:12:27
【问题描述】:
\project_structure
-app
\project
  -settings.py
  -...
\picture
  -panda.jpg

我已经把图片上传到picture

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

database中的数据是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 并没用。

【问题讨论】:

  • media_root 应该是大写的 (MEDIA_ROOT)。通过更改它来检查它是否有效。
  • 你能提供你的网址文件吗

标签: python django


【解决方案1】:

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

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 %}

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

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

【讨论】:

  • 嗨。我已经更新了我的代码。图片存储在/project/media/my_sell/picture/panda.jpg。但是图片仍然不能show.URL:&lt;img src="/media/my_sell/picture/panda.jpg"&gt;
猜你喜欢
  • 1970-01-01
  • 2021-08-24
  • 1970-01-01
  • 1970-01-01
  • 2019-05-18
  • 2014-11-24
  • 2020-12-10
  • 2011-03-15
  • 1970-01-01
相关资源
最近更新 更多