tarantino peliculas pelicula descargar cantante django

peliculas - Django TemplateDoesNotExist?



django wikipedia (12)

Compruebe los permisos en las plantillas y los directorios de nombre de aplicación, ya sea con ls -l o intente hacer una ruta de acceso absoluta open () desde django.

Mi máquina local ejecuta Python 2.5 y Nginx en Ubuntu 8.10, con Django integrado en el último tronco de desarrollo.

Para cada URL que solicito, arroja:

TemplateDoesNotExist at / appname / ruta appname / template_name.html

Django intentó cargar estas plantillas, en este orden: * Usando el cargador django.template.loaders.filesystem.function: * Usando el cargador django.template.loaders.app_directories.function:

TEMPLATE_DIRS (''/usr/lib/python2.5/site-packages/projectname/templates'',)

¿Está buscando /usr/lib/python2.5/site-packages/projectname/templates/appname/template_name.html en este caso? Lo extraño es que este archivo existe en el disco. ¿Por qué Django no puede ubicarlo?

Ejecuto la misma aplicación en un servidor remoto con Python 2.6 en Ubuntu 9.04 sin tal problema. Otras configuraciones son iguales.

¿Hay algo mal configurado en mi máquina local, o lo que podría haber causado tales errores que debo investigar?

En mi settings.py , he especificado:

SETTINGS_PATH = os.path.normpath(os.path.dirname(__file__)) # Find templates in the same folder as settings.py. TEMPLATE_DIRS = ( os.path.join(SETTINGS_PATH, ''templates''), )

Debería estar buscando los siguientes archivos:

  • /usr/lib/python2.5/site-packages/projectname/templates/appname1/template1.html
  • /usr/lib/python2.5/site-packages/projectname/templates/appname1/template2.html
  • /usr/lib/python2.5/site-packages/projectname/templates/appname2/template3.html
  • ...

Todos los archivos anteriores existen en el disco.

Resuelto

Funciona ahora después de que intenté:

chown -R www-data:www-data /usr/lib/python2.5/site-packages/projectname/*

Es extraño. No necesito hacer esto en el servidor remoto para que funcione.


Debo usar plantillas para una aplicación interna y funciona para mí:

''DIRS'': [os.path.join(BASE_DIR + ''/THE_APP_NAME'', ''templates'')],


El error de Django TemplateDoesNotExist significa simplemente que el marco no puede encontrar el archivo de plantilla.

Para usar la API de carga de plantillas, deberá indicarle a la estructura donde almacena sus plantillas. El lugar para hacerlo es en su archivo de settings.py ( settings.py ) por configuración TEMPLATE_DIRS . Por defecto es una tupla vacía, por lo que esta configuración le dice al mecanismo de carga de plantillas de Django dónde buscar las plantillas.

Elija un directorio donde desee almacenar sus plantillas y agréguelo a TEMPLATE_DIRS, por ejemplo:

TEMPLATE_DIRS = ( ''/home/django/myproject/templates'', )


En configuración .py, elimine TEMPLATE_LOADERS y TEMPLATE DIRS Then ADD

TEMPLATES = [ { ''BACKEND'': ''django.template.backends.django.DjangoTemplates'', ''DIRS'': [''/home/jay/apijay/templates'',], ''APP_DIRS'': True, ''OPTIONS'': { ''context_processors'': [ ''django.template.context_processors.debug'', ''django.template.context_processors.request'', ''django.contrib.auth.context_processors.auth'', ''django.contrib.messages.context_processors.messages'', ], }, }, ]


Encuentra esta tupla:

TEMPLATES = [ { ''BACKEND'': ''django.template.backends.django.DjangoTemplates'', ''DIRS'': [], ''APP_DIRS'': True, ''OPTIONS'': { ''context_processors'': [ ''django.template.context_processors.debug'', ''django.template.context_processors.request'', ''django.contrib.auth.context_processors.auth'', ''django.contrib.messages.context_processors.messages'', ], }, }, ]

Debes agregar a ''DIRS'' la cadena

"os.path.join(SETTINGS_PATH, ''templates'')"

Así que en conjunto necesitas:

TEMPLATES = [ { ''BACKEND'': ''django.template.backends.django.DjangoTemplates'', ''DIRS'': [os.path.join(SETTINGS_PATH, ''templates'')], ''APP_DIRS'': True, ''OPTIONS'': { ''context_processors'': [ ''django.template.context_processors.debug'', ''django.template.context_processors.request'', ''django.contrib.auth.context_processors.auth'', ''django.contrib.messages.context_processors.messages'', ], }, }, ]


Funciona ahora después de que probé

chown -R www-data:www-data /usr/lib/python2.5/site-packages/projectname/*

Es extraño. No necesito hacer esto en el servidor remoto para que funcione.

Además, tengo que ejecutar el siguiente comando en la máquina local para hacer accesibles todos los archivos estáticos, pero en el servidor remoto todos son "root: root".

chown -R www-data:www-data /var/www/projectname/*

La máquina local se ejecuta en la edición de escritorio Ubuntu 8.04. El servidor remoto está en la edición del servidor Ubuntu 9.04.

¿Alguien sabe por qué?


Hola chicos, encontré una nueva solución. En realidad, está definido en otra plantilla así que en vez de definir a TEMPLATE_DIRS usted mismo, ponga su nombre de ruta de directorio en su:


Para la versión 1.9 de django, agregué

''DIRS'': [os.path.join(BASE_DIR, ''templates'')],

línea al bloque de Plantillas en settings.py Y funcionó bien



Vea en qué carpeta intenta django cargar la plantilla, mire Template-loader postmortem en la página de error, por ejemplo, el error se relajará así:

Template-loader postmortem Django tried loading these templates, in this order: Using engine django: django.template.loaders.filesystem.Loader: d:/projects/vcsrc/vcsrc/templates/base.html (Source does not exist)

En mi error vcsrc/vcsrc/templates/base.html no está en la ruta.
A continuación, cambie las TEMPLATES en el archivo setting.py a la ruta de las plantillas

TEMPLATES = [ { ''BACKEND'': ''django.template.backends.django.DjangoTemplates'', # ''DIRS'': [], ''DIRS'': [os.path.join(BASE_DIR, ''vcsrc/templates'')], ...


Verifique que sus templates.html estén en /usr/lib/python2.5/site-packages/projectname/templates dir.


Primera solución :

Esta configuración

TEMPLATE_DIRS = ( os.path.join(SETTINGS_PATH, ''templates''), )

significa que Django mirará las plantillas desde templates/ directorio bajo su proyecto.

Suponiendo que su proyecto Django se encuentra en /usr/lib/python2.5/site-packages/projectname/ luego con su configuración django buscará las plantillas en /usr/lib/python2.5/site-packages/projectname/templates/

Entonces, en ese caso, queremos mover nuestras plantillas para que se estructuren así:

/usr/lib/python2.5/site-packages/projectname/templates/template1.html /usr/lib/python2.5/site-packages/projectname/templates/template2.html /usr/lib/python2.5/site-packages/projectname/templates/template3.html

Segunda solución :

Si eso todavía no funciona y asumiendo que tienes las aplicaciones configuradas en settings.py como esta:

INSTALLED_APPS = ( ''appname1'', ''appname2'', ''appname3'', )

De manera predeterminada, Django cargará las plantillas debajo de templates/ directorio debajo de cada aplicación instalada. Entonces, con su estructura de directorios, queremos mover nuestras plantillas para que sean así:

/usr/lib/python2.5/site-packages/projectname/appname1/templates/template1.html /usr/lib/python2.5/site-packages/projectname/appname2/templates/template2.html /usr/lib/python2.5/site-packages/projectname/appname3/templates/template3.html

Espero que ayude.

SETTINGS_PATH puede no estar definido por defecto. En ese caso, querrá definirlo (en settings.py):

import os SETTINGS_PATH = os.path.dirname(os.path.dirname(__file__))