【发布时间】:2015-12-16 14:45:09
【问题描述】:
在 Django 1.8 中,我可以上传图像并将它们保存在应有的路径上,但是当我将 <img src="{{ slider.Image.url }}" alt="Slider" /> 添加到模板时,图像不显示。如果我只想在 url 中看到像 http://127.0.0.1:8000/static/images/slider/1.jpg 这样的图像,图像确实会出现。但是当我转到主页 http://127.0.0.1:8000/home/ 时,它只会显示 alt。
这是我的目录树:
- home
- static
- static/
css
images
slider
js
正确放置在滑块中的图像。 CSS 和 Js 工作正常。
这是我的设置文件
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'home'
)
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
MEDIA_URL = (
'static/'
)
MEDIA_ROOT = (
os.path.join(BASE_DIR, 'static')
)
当我使用static_root 时,问题变得更加严重,没有任何效果。
这是我家中的滑块模型
class Slider(models.Model):
ImageName = models.CharField(max_length=200)
Image = models.ImageField(upload_to="images/slider")
这是我的主要网址
from django.conf.urls import include, url, patterns
from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^home/', include('home.urls')),
]
from django.conf import settings
urlpatterns += patterns('',
url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes': False}),
)
这是我的主页应用网址
from django.conf.urls import url
from .import views
urlpatterns = [
url(r'^$', views.slider, name='slider',)
]
这是我的模板源
{% for slider in sliders %}
<li class="item"><img src="{{ slider.Image.url }}" alt="Slider" /><span class="overlay1"></span></li>
{% endfor %}
【问题讨论】:
-
{{ slider.Image.url }}的值是多少?检查img的来源并查看其价值。 -
-
-
抱歉 PIP 没有安装。
标签: python django image django-templates django-views