Desde Yaco nos traen las aplicaciones pluggables django-inlinetrans y django-inplaceedit que permiten editar traducciones de templates y objetos de nuestros modelos desde el frontend de nuestro proyecto.
Una vez instalada en nuestro proyecto, django-inlinetrans nos permitirá realizar traducciones inline. Para ello basta con reemplazar los tags de traducción de nuestras plantillas:
{% trans "Hola" %}
por el templatetag itrans:
{% itrans "Hola" %}
De esta forma podremos editar las traducciones de nuestras plantillas directamente desde el frontend de nuestro proyecto.
Por su parte django-inplaceedit nos permitirá editar los campos de nuestros modelos reemplazando sus ocurrencias en nuestras plantillas por el tag inplace_edit. Por ejemplo:
{{ content.description|safe }}
Tendría que ser reemplazado por:
{% inplace_edit "content.description|safe" %}
django-inplaceedit no sólo nos permite editar campos de texto si no que también soporta la edición de choices, campos booleanos, campos de fecha ó fecha y hora, foreingkeys, relaciones many-to-many, campos de archivo y de imagen, todo ello in-place desde el frontend de nuestro proyecto.
Ambas aplicaciones se pueden ver en acción en el siguiente vídeo:
Publicado por Antonio Melé el Miércoles 11 d Enero d 2012 | 5 comentarios | Categorías: aplicaciones, internacionalización, modelos, pluggables
django-transmeta es una aplicación reusable que nos permite añadir traducciones a los campos de nuestros modelos. Es muy fácil de utilizar ya que crea automáticamente un campo en la base de datos por cada atributo traducible y cada idioma de nuestro setting LANGUAGES.
Así, si tenemos un campo llamado nombre y nuestro setting LANGUAGES son inglés y español django-transmeta creará los campos nombre_es, nombre_en en la base de datos y al acceder directamente a atributo nombre obtendremos la traducción correspondiente al idioma que esté activo en la petición.
Para usar django-transmeta tenemos que añadir un atributo __metaclass__ a los modelos que tengan campos con traducciones y en la clase Meta del modelo añadiremos el atributo translate en el que tendremos que incluir la lista de campos que permiten ser traducidos. Valga como ejemplo el siguiente modelo en el que los campos con traducción serán description y body:
from transmeta import TransMeta
class Book(models.Model):
__metaclass__ = TransMeta
title = models.CharField(max_length=200)
description = models.TextField()
body = models.TextField(default='')
price = models.FloatField()
class Meta:
translate = ('description', 'body', )
Al añadir nuevos idiomas o marcar nuevos campos como traducibles django-transmeta se ocupa de detectar qué tablas faltan en la base de datos para crearlas. Para ello basta utilizar el siguiente comando tras haber modificado cualquier modelo:
./manage.py sync_transmeta_db
Otra ventaja es que django-transmeta muestra todos los campos de idiomas en el sitio de administración de Django de forma transparente, permitiendo editar todos los idiomas desde el Admin.
Publicado por Antonio Melé el Lunes 14 d Febrero d 2011 | 8 comentarios | Categorías: aplicaciones, internacionalización, modelos, pluggables
Django es una excelente plataforma de desarrollo web, con una enorme comunidad de desarrolladores, siendo el framework web Python más popular. Sin embargo, Django no dispone de un CMS tan completo como otros muchos existentes en el mercado (Drupal, Plone, ModX, etc.)
Merengue es un proyecto financiado por la Universidad de Málaga que pretende cubrir ese hueco existente, y que ha sido desarrollado reutilizando multitud de código proveniente de otros proyectos. También se ha reaprovechado el gran conocimiento previo que se poseía de otros CMSs existentes, principalmente Plone y Drupal, así como otras soluciones basadas en Django (Pinax, django-cms, feincms, LFC, etc.).
Os animo a cualquiera a participar del proyecto y a ingresar en la lista de autores (como contribuidores o incluso desarrolladores) ya que creo que lo ya desarrollado os puede gustar bastante, y eso que aún se encuentra en la versión 0.5.
Publicado por Manuel Saelices el Viernes 6 d Agosto d 2010 | 14 comentarios | Categorías: aplicaciones, comunidad
Hace un par de días se ha liberado la versión 1.0 final de Haystack. Haystack es probablemente la forma más sencilla de añadir un sistema de búsqueda a Django. Ofrece una API que permite utilizar distintos backends de búsqueda como Solr, Whoosh ó Xapian. Además ofrece una interfaz para realizar las búsquedas llamada SearchQuerySet que es muy similar a las QuerySets de Django.
La documentación de Haystack 1.0 está muy bien detallada y el proyecto está disponible en GitHub: django-haystack.
Publicado por Antonio Melé el Miércoles 2 d Diciembre d 2009 | 1 comentario | Categorías: aplicaciones, pluggables
Suscríbete a nuestro feed RSS y al feed de la comunidad para estar al tanto de todo lo que ocurre entorno a Django.
Tú también puedes escribir en éste blog. Para hacerlo basta con que nos digas sobre qué quieres escribir un artículo relacionado con Django.
Utilizar un formulario para modificar 2 modelos
Descubriendo objetos similares por sus etiquetas