【问题标题】:Django template doesn't display ImageFieldDjango 模板不显示 ImageField
【发布时间】:2015-12-06 12:48:59
【问题描述】:

我有一个模型,其中有一个 ImageField 但模板中没有出现。图片上传OK(在media_root/one/image.jpg)

Settings.py:

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

Urls.py

(...)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += staticfiles_urlpatterns()

Models.py

class myModel1(models.Model):
__(...)
__image = models.ImageField(upload_to='one', default="")
__(...)

在我的模板上,我做了这个:

 <img src="{{ myModel1.image.url }}" alt="{{ myModel1.name }} image" />

而在 HTML 上是这样的:

 (...)**src="/media/one/photo_p33Mo8a.jpg"**(...)

但是图片不显示

找不到错误 404:

 GET http://localhost:8000/media/one/photo_p33Mo8a.jpg 404 (NOT FOUND)

有人可以帮我吗?

PD:抱歉,我第一次在 stackOverFlow 上写作。

不得不说,在media_root/one/中出现了图片,但是/media/文件夹还是空的。

文件夹结构: 项目:
___app_文件夹
________媒体
________models.py....
___media_root
________一个
____________image.jpg
___mainFolder(设置,网址..)
___static_root(...)

【问题讨论】:

  • 你应该显示你的 django 项目的文件夹结构
  • @Karramarro Gorri static 来自django.conf.urls.static 的方法仅在您将DEBUG 设置为True 时有效。是否启用了调试模式?
  • 是的,我有 DEBUG=True。静态文件(如图像,..)工作。但媒体给出了问题。 :|
  • @KarramarroGorri 我正在写你的问题的详细回复。它将在大约 5-10 分钟内添加:)

标签: python django imagefield


【解决方案1】:

试试你的颤音板:

<img src="{{ MEDIA_URL }}{{ myModel1.image }}" alt="{{ myModel1.name }} image" />

*编辑

看来您必须在 urls.py 文件中添加:

from django.conf import settings
from django.views.static import serve

# ... the rest of your URLconf goes here ...

if settings.DEBUG:
    urlpatterns += [
        url(r'^media/(?P<path>.*)$', serve, {
            'document_root': settings.MEDIA_ROOT,
        }),
   ]

编辑2

您的 ROOT_MEDIA 路径应该是:

MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "media_root")

【讨论】:

  • 不:S。现在它创建了另一个目录:之前:media_root/one/image.jpg,现在是 media_root/one/one/image.jpg。并没有工作:(
  • 是的,我做到了。奇怪的是,在 HTML img src 中出现 '/media/one/image.jpg' 但找不到它:S
  • 我做到了。但我看到 img 标签中的 {{ MEDIA_URL }} 并没有改变任何东西。在 HTML 中,无论有无 {{ MEDIA_URL }},我都看到相同的结果。我看到了:一个/image.jpg
  • 工作。非常感谢。我的主要错误是什么?我在我的 app/urls.py 文件中添加了信息,而不是在我的 project/urls.py 文件中。 o.0'... 在模板中的工作方式如下:。非常感谢。
猜你喜欢
  • 1970-01-01
  • 2017-05-31
  • 1970-01-01
  • 2014-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-03
  • 2016-06-25
相关资源
最近更新 更多