django django-templates django-1.5

Migrar etiquetas url a django 1.5



django-templates django-1.5 (2)

También hay un fragmento con una solución en python en http://djangosnippets.org/snippets/2905/

Sólo una advertencia, el hallazgo. -type f -print0 encontrará archivos que están "ocultos" como archivos en sus directorios .git / o .hg / y pueden dañar su repositorio u otros archivos binarios.

Si usa la convención habitual en django con sus archivos de plantilla que terminan en .html, puede buscar con más cuidado con:

find . -iname ''*.html'' -type f -print > file.list

Examine file.list primero para verificar qué archivos se están modificando antes de agruparlos con el comando sed

Estoy tratando de migrar una aplicación django antigua a django 1.5. Hay 745 urls en diferentes archivos html de esta manera:

{% url url_name %}

Si no estoy equivocado, esto quedó obsoleto y ya no se puede usar desde django 1.5 (como se dice here ), y tengo que transformarlos a todos en:

{% url ''url_name'' %}

¿Alguna idea de hacer esto sin volverte loco? Tal vez, algún tipo de script, no lo sé ... No puedo imaginar una manera de hacerlo con reemplazar en ruta.

Probablemente me esté perdiendo algo obvio.


NOTA: Este comando es destructivo. Use el control de versiones o haga una copia de respaldo de su directorio de plantillas antes de ejecutarlo

Puedes usar sed. Desde su plantilla de directorio (o directorios) ejecute

sed -i -r -e "s#/{% url ([a-zA-Z0-9_.:-]+)#/{% url ''/1''#g" *

La expresión coincide con {% url [view name] , por lo que los argumentos proporcionados a la etiqueta de la plantilla url no se verán afectados / sin cambios.

Para ejecutarlo recursivamente,

find . -type f -print0 | xargs -0 sed -i -r -e "s#/{% url ([a-zA-Z0-9_.:-]+)#/{% url ''/1''#g"

Este comando sed asume que los nombres de sus vistas solo contienen caracteres alfanuméricos, dos puntos, guiones, puntos y guiones bajos, sin otros caracteres especiales. Ahora soporta vistas de espacio de nombre.

Probado contra las etiquetas en esta etiqueta de plantilla Django 1.4 url ​​Gist