我很想在Django的帮助下尝试在我的数据库中加载一些图像。 加载似乎有效,但是从数据库中取回并在网页上显示它们似乎不起作用。
这里有一些信息:
环境:
的myproject | _forpix(我的应用) | _myproject | _media | _images | _mimicry3.png
我有一个base.html,它包含一个内容块“allimages.html”:
{% extends "base.html" %}
{% block content %}
<div id="imagelist">
{% for image in images %}
<p><img src="{{MEDIA_ROOT}}{{image.picture.url}}" />{{ image }}</p>
{% endfor %}
</div>
{% endblock %}
这给了我以下结果:
如果我点击其中一张图片:
在我的settings.py中,我设置了以下内容:
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
TEMPLATE_DIRS = (os.path.join(BASE_DIR, 'templates/'),)
现在我真的不知道如何解决这个问题。 任何人都可以给我一些帮助(不是django教程,我去过那里,尝试过)
我是否必须在urls.py中添加一些内容,尤其是媒体文件?还是别的什么?
如果我需要提供额外信息,请询问。
答案 0 :(得分:1)
^media/$
是一个非常错误的媒体文件正则表达式。您应该从此正则表达式中删除$
(end-of-the-string)符号。
通常对于开发环境,我在urls.py
:
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = patterns('',
...
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
同时从模板代码中删除无用的{{ MEDIA_ROOT }}
部分。它应该是:
<img src="{{ image.picture.url }}" />
答案 1 :(得分:0)
此外,您必须添加的行是..
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = patterns('',
...
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
但它必须在您的项目文件夹的 urls.py 中。不在您的 App 文件夹的 urls.py 中。我误会了。