¿Cuándo es apropiado usar procesadores de contexto Django?
-
06-07-2019 - |
Pregunta
Si aproximadamente la mitad de mis vistas requieren el mismo conjunto de datos, ¿es apropiado usar un procesador de contexto para hacer que los datos estén siempre disponibles, o hay una mejor manera de evitar repetir el código para obtener esos datos en varias vistas sin consultar? los datos si no se usarán en la vista?
Solución
El inicializador RequestContext
ejecutará los procesadores de contexto enumerados en el archivo de configuración, pero también toma una lista de procesadores adicionales para ejecutar. Cualquier procesador de contexto de propósito general se puede colocar en settings.py y se pueden agregar más específicos al RequestContext
caso por caso.
Deje RequestContext
por completo para no ejecutar ningún procesador de contexto.
# want context processors listed in settings.py as well as some more specific ones
return render_to_response('template.html', {'foo':'bar'}, context_instance=RequestContext(request, processors = extra_processors))
# want only context processors listed in settings.py
return render_to_response('template.html', {'foo':'bar'}, context_instance=RequestContext(request))
# no context processors
return render_to_response('template.html', {'foo':'bar'})
Otros consejos
Puede filtrar qué vistas realmente usan procesadores de contexto pasando solo RequestContext (request)
solo a aquellos que lo necesitan, por ejemplo:
# want context processors
return render_to_response('template.html', {'foo':'bar'}, context_instance=RequestContext(request))
# no context processors
return render_to_response('template.html', {'foo':'bar'})