digamos en su archivo settings.py
que tienen:
SITE_URL='www.mydomain.tld/somewhere/'
SITE_NAME='My site'
Si necesita que en sólo uno o dos puntos de vista:
from django.shortcuts import render_to_response
from django.conf import settings
def my_view(request, ...):
response_dict = {
'site_name': settings.SITE_NAME,
'site_url': settings.SITE_URL,
}
...
return render_to_response('my_template_dir/my_template.html', response_dict)
Si necesita acceda a estos en muchas aplicaciones y/o vistas, puede escribir un procesador de contexto para guardar el código:
James tiene un tutorial en este online.
Alguna información útil sobre el cuándo y si de los procesadores de contexto está disponible en este mismo sitio here.
dentro de su archivo my_context_processors.py
lo haría:
from django.conf import settings
def some_context_processor(request):
my_dict = {
'site_url': settings.SITE_URL,
'site_name': settings.SITE_NAME,
}
return my_dict
De vuelta en su settings.py
, activarla haciendo:
TEMPLATE_CONTEXT_PROCESSORS = (
...
# yours
'my_context_processors.some_context_processor',
)
En su views.py
, hacer una vista usarlo de esta manera:
from django.shortcuts import render_to_response
from django.template import RequestContext
def my_view(request, ...):
response_dict = RequestContext(request)
...
# you can still still add variables that specific only to this view
response_dict['some_var_only_in_this_view'] = 42
...
return render_to_response('my_template_dir/my_template.html', response_dict)
Quiero usar estas configuraciones en mi plantilla base de la que todos los demás heredan, y estoy un poco cansado y ¿Hay alguna forma de realizar el comportamiento predeterminado para que render_to_response use un RequestContext en lugar de solo un contexto? No quiero tener que seguir agregando los mismos parámetros en todo mi código si puedo evitarlo. – Roger
Puede escribir una función de envoltura alrededor de render_to_response que toma la solicitud como un argumento adicional, y en esa función: tmp_dict = RequestContext (solicitud), tmp_dict.update (response_dict) return render_to_response ('... html', tmp_dict) - esto podría haga que le sea más fácil cambiar su código en todas partes a través de las operaciones de búsqueda y reemplazo – Geradeausanwalt
, eso es genial, gracias a todos. – Roger