Django Not Recognizing The Media_url Path?
Solution 1:
It looks like your are using the debug server (your url is http://127.0.0.1:8000/...) . Did you install the static serve in your urls.py?
if settings.DEBUG:
urlpatterns += patterns('',
(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes':True}),
)
The 'show_indexes':True options make possible to browse your media. Go to your medias root http://127.0.0.1:8000/media/ and see it there is something
Solution 2:
You can either pass it to the template manually as others have suggested or ensure that you are using a RequestContext instead of plain Context. RequestContext will automatically populate the context with certain variables including MEDIA_URL and other media-related ones.
Example from docs:
defsome_view(request):
# ...return render_to_response('my_template.html',
my_data_dictionary,
context_instance=RequestContext(request))
Solution 3:
It looks like ars has answered your real question… But you'll run into another problem: MEDIA_URL
must be different from ADMIN_MEDIA_PREFIX
. If they aren't, the ADMIN_MEDIA_PREFIX
will take precedence. I usually fix this by changing ADMIN_MEDIA_PREFIX
to /admin-media/
.
Solution 4:
Do you have the media context processor in your settings?
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.media',
)
You might also try putting the following in your settings to see if the debug messages reveal anything:
TEMPLATE_DEBUG = True
Solution 5:
Please read the official Django DOC carefully and you will find the most fit answer.
The best and easist way to solve this is like below.
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = patterns('',
# ... the rest of your URLconf goes here ...
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
The related url is: https://docs.djangoproject.com/en/1.5/howto/static-files/#serving-files-uploaded-by-a-user
Post a Comment for "Django Not Recognizing The Media_url Path?"