How to render images on Django template

2019-02-20 02:12发布

问题:

See my GitHub

https://github.com/rg3915/gallery

How to render images on Django template? But he is returning:

Gallery

media/3665_1280x800_8UX8tgG.jpg

Tour de France

media/281405_fSRBDZu.jpg

bike of children

How to render the images?

Does the bug is in settings.py

回答1:

urls.py

from django.conf import settings
from django.conf.urls import patterns, include, url
from django.conf.urls.static import static
from gallery.core.views import *
from django.contrib import admin

urlpatterns = patterns(
    'gallery.core.views',
    url(r'^$', 'home', name='home'),
    url(r'^gallery/$', GalleryList.as_view(), name='gallery_list'),
    url(r'^admin/', include(admin.site.urls)),
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

settings.py

MEDIA_ROOT = BASE_DIR.child('media')
MEDIA_URL = '/media/'

STATIC_ROOT = BASE_DIR.child('staticfiles')
STATIC_URL = '/static/'

gallery_list.html

<html>
<body>
    <h1>Gallery</h1>

    {% if gallery %}
        {% for photo in gallery %}
            <p><img src="{{ photo.photo.url }}" width="300px"></p>
            <p>{{ photo.description }}</p>
        {% endfor %}
    {% endif %}

</body>
</html>

The secret is photo.photo.url