Search code examples
django-templatesimagefield

How to render images on Django template


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


Solution

  • 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