Django: could not parse the remainder (media i.e. image)

Issue

I am developing a WebApp using Django.I m a newbie, I have this html file which contains image, i did go through this “link”, but now i am getting an error as in parsing the Media Url. Could any let me know what is wrong? I have checked the permissions, even they are correct. !!

This is that image which i am including –

<img border="2" src="{{ MEDIA_URL }}samplelogo.jpg" alt="logo here"/>

This is the urls.py –

from django.conf.urls.defaults import patterns, include, url
import settings

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^gharnivas/$', 'gharnivas.views.index'),
    url(r'^media/(?P<path>.*)$','django.views.static.serve',{'document_root': settings.MEDIA_ROOT}),
)

This is the settings.py with media url and root :

MEDIA_ROOT = '/home/nagaraj/ghar/templates/media'
MEDIA_URL = 'http://localhost:8000/media/'

ghar is the django project and gharnivas is the app

Update :

Now I have removed the error of TemplateSyntaxError by replacing Media url to ‘/media/’ as suggested by @Torsten below. But still not getting the image !!

Another query , is it correct that i am using MEDIA_ROOT And MEDIA_URL ? Because some place i even see that they have STATIC_URL and STATIC_ROOT !!

Solution

{{ MEDIA_URL }} outputs empty string? Make sure that

1). 'django.core.context_processors.media' is in TEMPLATE_CONTEXT_PROCESSORS

2). You pass RequestContext in your template (by passing context_instance=RequestContext(request) in render_to_response or by using direct_to_template instead).

From Django 1.8 'django.core.context_processors.media' was moved to
'django.template.context_processors.media'

Answered By – DrTyrsa

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published