serve - Django{{MEDIA_URL}} en blanco @DEPRECATED
media url django (5)
Actualización: para los usuarios de Django 1.10, los procesadores de medios y de contexto estáticos ya se movieron en django.template desde django.core, lea el siguiente artículo para obtener más información: https://docs.djangoproject.com/en/1.10/ref/templates/api/#django-template-context-processors-media
Me he golpeado la cabeza con esto durante las últimas horas. No puedo mostrar {{MEDIA_URL}} para que aparezca
en settings.py
..
MEDIA_URL = ''http://10.10.0.106/ame/''
..
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.media",
)
..
en mi opinión tengo
from django.shortcuts import render_to_response, get_object_or_404
from ame.Question.models import Question
def latest(request):
Question_latest_ten = Question.objects.all().order_by(''pub_date'')[:10]
p = get_object_or_404(Question_latest_ten)
return render_to_response(''Question/latest.html'', {''latest'': p})
entonces tengo un base.html y Question / latest.html
{% extends ''base.html'' %}
<img class="hl" src="{{ MEDIA_URL }}/images/avatar.jpg" /></a>
pero MEDIA_URL aparece en blanco, pensé que así es como debería funcionar, pero tal vez estoy equivocado.
Actualización La última versión corrige estos problemas.
Además de la pregunta anterior, puede sugerirle que eche un vistazo a la aplicación de photologue . Podría ayudarte a evitar los enlaces directos en los archivos de plantilla y usar objetos en su lugar. F.ex .:
<img src="{{ artist.photo.get_face_photo_url }}" alt="{{ artist.photo.title }}"/>
Agregar procesador de contexto de plantilla de medios también hace el trabajo
TEMPLATE_CONTEXT_PROCESSORS = (
"django.core.context_processors.request",
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.media",
"django.core.context_processors.static",
)
También puede usar direct_to_template:
from django.views.generic.simple import direct_to_template
...
return direct_to_template(request, ''Question/latest.html'', {''latest'': p})
render_to_response
agregar el RequestContext
en su render_to_response
para render_to_response
los procesadores de contexto.
En tu caso:
from django.template.context import RequestContext
context = {''latest'': p}
render_to_response(''Question/latest.html'',
context_instance=RequestContext(request, context))
De los docs :
instancia_contextual
La instancia de contexto para representar la plantilla. Por defecto, la plantilla se representará con una instancia de contexto (llena de valores del diccionario). Si necesita usar procesadores de contexto, represente la plantilla con una instancia RequestContext.