---
title: "FAQ: Usando Django"
version: 2.2
locale: es
source: https://docs.djangoproject.com/es/2.2/faq/usage/
canonical: https://djangodocs.dev/es/2.2/faq/usage/
---
# FAQ: Usando Django

## ¿Por qué me aparece un error importando DJANGO\_SETTINGS\_MODULE?

Asegúrese de que:

- La variable de entorno DJANGO\_SETTINGS\_MODULE esté fijada en un módulo de Python altamente calificado (es decir, «mysite.settings»).
- Dicho módulo está en \`\` sys.path\`\` (`import mysite.settings` debería funcionar).
- El módulo no tiene errores de sintaxis (por supuesto).

## No puedo soportar su lenguaje de plantillas. ¿Tengo que usarlo?

Nosotros pensamos que nuestro motor de plantillas es la mejor cosa después de la tocineta en trozos, pero reconocemos que escoger un lenguaje de plantillas es algo parecido a una religión. No hay nada acerca de Django que requiera usar el lenguaje de plantillas, si está apegado a Jinja2, Mako o lo que sea, siéntete libre de usarlos.

## ¿Tengo que utilizar su capa del modelo y la capa de base de datos?

No. Al igual que el sistema de plantillas, la capa del modelo y la capa de base de datos está separada del resto del framework.

La única excepción es que: si usted utiliza una librería de base de datos diferente, no logrará utilizar el sitio administrativo generado automáticamente de Django. Esa aplicación se acopla a la capa de base de datos de Django.

## ¿Cómo uso los campos de imágenes y archivos?

Utilizar una [`FileField`](/es/2.2/ref/models/fields/#django.db.models.FileField) o una :class:~django.db.models.ImageField\`en un modelo toma unos pocos pasos:

1. En el archivo de configuraciones, tendrá que definir: setting:MEDIA\_ROOT como la ruta completa para un directorio donde le gustaría que Django guardará los archivos subidos. (Por razones de rendimiento, estos archivos no se guardan en la base de datos.) Defina [`MEDIA_URL`](/es/2.2/ref/settings/#std-setting-MEDIA_URL) como la dirección URL pública de base de ese directorio. Asegúrese de que este directorio tenga permisos de escritura por parte de la cuenta de usuario del servidor Web.
2. Añada la `ImageField` a su modelo, definiendo la opción [`upload_to`](/es/2.2/ref/models/fields/#django.db.models.FileField.upload_to) para especificar un subdirectorio de [`MEDIA_ROOT`](/es/2.2/ref/settings/#std-setting-MEDIA_ROOT) a utilizar para los archivos subidos.
3. Todo lo que se guardará en su base de datos es una ruta de acceso al archivo (relativa a [`MEDIA_ROOT`](/es/2.2/ref/settings/#std-setting-MEDIA_ROOT)). Usted probablemente querrá utilizar el atributo de conveniencia [`url`](/es/2.2/ref/models/fields/#django.db.models.fields.files.FieldFile.url) proporcionado por Django. Por ejemplo, si su [`ImageField`](/es/2.2/ref/models/fields/#django.db.models.ImageField) se llama `mug_shot`, usted puede obtener la ruta absoluta a su imagen en una plantilla con `{{ object.mug_shot.url }}`.

## ¿Cómo hago que una variable esté disponible para todas mis plantillas?

A veces todas sus plantillas simplemente necesitan lo mismo. Un ejemplo típico serían los menús generados dinámicamente. A primera vista, parece lógico añadir simplemente un diccionario común al contexto de la plantilla.

La solución correcta es usar un `RequestContext`. Los detalles de cómo hacer esto están aquí: [Using RequestContext](/es/2.2/ref/templates/api/#subclassing-context-requestcontext).
