[pyar] [Django] Custom Filter

Ramiro Morales cramm0 en gmail.com
Mie Feb 2 19:03:09 ART 2011


2011/2/2 matias benedetto <matias.benedetto en gmail.com>:
>
>>
>> >>tenes 'biblioteca' dentro de tu INSTALLED_APPS en el settings.py?
>
> Si Daniel lo tengo así:
> INSTALLED_APPS = (
>     'django.contrib.auth',
>     'django.contrib.contenttypes',
>     'django.contrib.sessions',
>     'django.contrib.sites',
>     'biblioteca',
>     'django.contrib.admin'
> )
>
>

Me ha pasado no con template filters sino con templates específicos de
las aplicaciones que no eran "levantados" a la hora de rendering y no
entendía porqué. Fijate si la misma 'solución' funciona en tu caso:

Probá cambiar 'biblioteca' por 'proyecto.biblioteca' en INSTALLED_APPS.

Hasta aquí una respuesta corta y que espero que sirva.

Ahora la larga con algo de rant:

Hay una tendencia a alejarse de tener atada la configuración de varias
cosas que hacen a un sitio al nombre del proyecto y a la ubicación de
las aplicaciones tal como como hiciste (en la documentación recibe el
nombre de 'decoupling' sobre le final de tutorial 3). Y que es lo mas
sano sis e desea que las apps sean portables/auto-contenidas.

Incluso el objetivo (al menos de algunos) es quitarle énfasis al
concepto de 'proyecto'. Promover que los desarrolladores/deployers
simplemente se manejen con conceptos básicos de Python: El módulo de
configuración, el mapa de URLs raíz (urls.py) y las aplicaciones son
simplemente módulos Python que pueden estar en cualquier parte del FS
siempre y cuando estén en el Python path. Todas los demás chirimbolos
(templates, template filters y tags, archivos estáticos, traducciones,
etc., etc.) son descubiertos ya sea porque vienen incluidos con las
aplicaciones o porque se ha especificado el path del filesystem donde
encontrarlos en algún setting. No debería haber nada que se descubra
mágicamente a partir del path del "proyecto".

Pero hay cosas (por ejemplo no se descubren los templates en apps como
me pasaba y si tu problema se trata de lo mismo, tambien los template tags
y filters custom) que no funcionan del todo bien cuando estás usando el
servidor de desarrollo con manage.py runserver y no usas el nombre del
proyecto allí en INSTALLED_APPS. Lo cual contradice justamente todas las
buenas intenciones del decoupling.

El culpable es el bendito manage.py que en su afan de facilitar comenzar
a trabajar y/o probar Django, refuerza el concepto de proyecto y hace
algunas chanchadas con el Python path que causan este tipo de problemas.

¡Suerte!

-- 
Ramiro Morales



More information about the pyar mailing list