找不到Django图像src [英] Django image src not found
问题描述
\项目结构
-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 $ c $中添加
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屋!