python - Django 不想显示媒体文件
问题描述
我正在尝试输出我这样保存的图像:
product_image = models.ImageField(blank = True, upload_to='images')
我的seetings.py 看起来像:
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
这里还有 urls.py:
urlpatterns = [
path('admin/', admin.site.urls),
url(r'^$', include('store.urls')),
url(r'^', include('store.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
查询就像 ORM 的简单实现,但我也在 ORM 上尝试过
def index(request):
products = DAO.get_all_products()
return render(request, 'store/index.html', locals())
HTML:
<img src="{{product.product_image}}" class="img-responsive watch-right" alt=""/>
而且它不起作用,我看不到任何图像,并且 {{product.product_image}} 在浏览器中向我显示 images/pic13.jpg。但我可以在 /admin 错误中看到此图像:
Not Found: /images/pic13.jpg
如何解决这个问题?此页面位于应用名为 store,urls.py 和 settings.py 在主应用中
解决方案
.url
您通过属性 [Django-doc]获取 url :
<img src="{{ product.product_image.url }}" class="img-responsive watch-right" alt=""/>
请注意,在生产中(DEBUG = False
例如),Django 不提供文件。在这种情况下,您将需要配置 nginx、apache 等。有关更多信息,请参阅文档的静态文件开发视图部分。
推荐阅读
- r - R包'randomForest'未安装
- javascript - 使用 Google Apps Scripts (GAS) V8 定义私有类字段
- django - Windows IIS 10 不会提供来自 Anaconda/Django 2.2 的静态文件。. . 我怎样才能解决这个问题?
- scala - 如何将 `List[IO[Unit]]` 转换为 `Stream[IO,Unit]`
- string - 此字符串解压缩的最佳算法
- node.js - Microsoft Teams botbuilder 如何在另一个频道中创建对话
- javascript - SocketIO & ReactJs:Socket Emitting 多次
- java - 即使所有值都保存在数组中,为什么我的 find 方法在这里不起作用?
- flutter - 在 Flutter 中重新发送 OTP 代码 Firebase 电话身份验证
- postgresql - Postgresql 服务器不断更改密码