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 el datos si no se usará en la vista?¿Cuándo es apropiado usar procesadores de contexto Django?
Respuesta
El inicializador RequestContext
se ejecutará ningún procesadores de contexto que figuran 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 poner en settings.py y se pueden agregar más específicos al RequestContext
caso por caso.
Deje RequestContext
en total para que no se ejecute 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'})
Puede filtrar los cuales vistas realmente utilizan procesadores de contexto sólo pasa RequestContext(request)
sólo para los 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'})
Creo que va a trabajar para esta situación particular, pero tratando de pensar en grande aquí: ¿y si yo tenía 3 o 4 funciones del procesador de contexto que se necesitaban por las vistas al azar, en ese momento me limito a importarlos y llamarlos en las vistas que los necesitan? Porque los procesadores de contexto son una especie de todo o nada ¿verdad? – rennat
Derecha, los procesadores de contexto en settings.py son todos o ninguno con RequestContext. Una forma más flexible de hacerlo sería crear una subclase de RequestContext para cada conjunto de procesadores que desee y establecer allí los procesadores de contexto, de modo que podría tener SidebarContext y CommentsContext, etc. Esto también obtendría procesadores de contexto de settings.py, lo que haría hacerlos más específicos de la aplicación, lo cual es mejor si tiene muchas aplicaciones que usan procesadores de contexto. Entonces, necesitarías una buena forma de encadenarlos ... – tghw
- 1. ¿Cuándo es apropiado usar IoC?
- 2. ¿Cuándo es apropiado usar CacheItemRemovedCallback?
- 3. ¿Cuándo es apropiado usar couchDB?
- 4. Django, procesadores de contexto de plantilla
- 5. Procesadores de contexto vs middleware en django
- 6. ¿Cuándo es apropiado usar genéricos versus herencia?
- 7. ¿Cuándo es apropiado usar el atributo KnownType?
- 8. ¿Cuándo es apropiado usar métodos virtuales?
- 9. ¿Cuándo no es apropiado usar tablas derivadas?
- 10. ¿Cuándo es apropiado usar una asociación bidireccional y cuándo no?
- 11. Procesadores de contexto Django: ¿es posible acceder al contexto actual en ContextProcessor?
- 12. ¿Cuándo es apropiado usar tipos de datos de precisión flotante?
- 13. Django - procesadores de contexto de plantilla - rompiendo mi aplicación
- 14. ¿Cuándo es apropiado usar UUID para un proyecto web?
- 15. ¿Cuándo es apropiado usar WCF sobre webclient o httpwebrequest?
- 16. ¿Cuándo es apropiado usar Time # utc en Rails 2.1?
- 17. ¿Cuándo es apropiado usar variables finales en blanco?
- 18. ¿Cuándo es apropiado el retroceso recursivo?
- 19. Cuándo usar 'contexto de diagnóstico anidado' (NDC)?
- 20. ASN.1 contra JSON ¿cuándo es apropiado usarlos?
- 21. ¿Cuándo es access_type = Online apropiado? : OAuth2 - API de Google
- 22. ¿Cuándo es apropiado usar static (sobre espacios de nombres sin nombre) en C++?
- 23. ¿Cuándo es apropiado usar una matriz de celdas frente a una estructura en Matlab?
- 24. ¿Cuándo es bueno usar FTP?
- 25. Django cuándo usar el método de desmontaje
- 26. ¿Cuándo es apropiado responder con un error HTTP 412?
- 27. Cuándo es necesario/apropiado usar InAttribute y OutAttribute para COM Interop
- 28. ¿Cuándo es el momento apropiado para usar la palabra clave 'nueva'?
- 29. ¿Cuándo debería usar django-admin.py verus manage.py?
- 30. django: ¿cuándo debería usar media_root o static_root?
esto parece ser la mejor respuesta para mí – Rasiel
Sí, lo cambié porque el bit de los procesadores extra era lo que realmente buscaba. – rennat