Django es el entorno de desarrollo web para perfeccionistas con límites de tiempo

Entradas sobre "aplicaciones":

Editar y traducir inline en Django fácilmente

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

Traducciones de modelos con django-transmeta

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

Merengue: el nuevo y sorprendente CMS basado en Django

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.).

Objetivos de Merengue

  • Puesta en marcha en 10 minutos para un desarrollador con conocimientos básicos.
  • Disponer de una amplia comunidad de desarrollo, incluyendo una comunidad hispanohablante.
  • Muy fácil de aprender, sin muchos conceptos difíciles de asimilar.
  • Que sea un producto ágil y muy integrable con otras plataformas, sin caer en el error la construcción de un megaproyecto (p.ej. Vignette o Plone) inmanejable y difícil de dominar.
  • Con una documentación completa y de calidad, siguiendo la línea marcada por Django.
  • Un roadmap claro al menos hasta las siguientes dos versiones, con al menos una nueva versión por año.

Entre sus características técnicas actuales (versión 0.5) destacamos:

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.

Enlaces de interés

Publicado por Manuel Saelices el Viernes 6 d Agosto d 2010 | 14 comentarios | Categorías: aplicaciones, comunidad

Haystack 1.0 liberado

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