Pregunta

decir que estoy escribiendo una aplicación de Django, y todas las plantillas en la aplicación requiere una determinada variable.

La forma "clásica" para hacer frente a esto, que yo sepa, es escribir un procesador de contexto y añadirlo a TEMPLATE_CONTEXT_PROCESSORS en el settings.py.

Mi pregunta es: , es esta la forma correcta de hacerlo, teniendo en cuenta que las aplicaciones se supone que deben ser "independientes" desde la propia obra usarlos?

En otras palabras, cuando el despliegue de esa aplicación a un nuevo proyecto, ¿hay alguna manera de evitar tener que el proyecto de forma explícita perder el tiempo con su configuración?

¿Fue útil?

Solución

Su suposición de que las aplicaciones solo se pueden añadir en un proyecto, sin tocar la configuración del proyecto no es correcta.

Si se agrega una aplicación a un proyecto, Tiene que editar la configuración , ya que necesita agregar en la tupla INSTALLED_APPS.

¿Por qué no editar la lista de procesador de contexto?

Otros consejos

procesadores de contexto son muy útiles y que no serían demasiado tímido en su uso, pero en algunas situaciones no tiene sentido.

Esta es una técnica que utilizo cuando necesito para incluir algo sencillo a todas las vistas de una aplicación. No puedo dar fe de que esta es la forma 'adecuada' de hacer las cosas, pero funciona para nuestro equipo:

Voy a declarar un diccionario template_vars mundial en la parte superior del archivo. Cada punto de vista sería añadir sus propias variables para este diccionario y pasarlo a la plantilla, y se devuelve template_vars en el acceso directo render_to_response.

Se ve algo como esto:

template_vars = {
    'spam': 'eggs',
    }

def gallery(request):
    """
    portfolio gallery
    """

    template_vars['projects'] = Projects.objects.all()
    return render_to_response('portfolio/gallery.html', template_vars, context_instance=RequestContext(request))

Sí, la adición de un procesador de contexto es el método más recomendado para lograrlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top