enero 25, 2012 at 6:10 pm | Blog, Destacados, Trabajo | No comment
Página web y área de acceso para clientes de Sittic S.L.
Desde su sede en San Fernando de Henares (Madrid) dirigen su negocio de artes gráficas en el que son especialistas en trabajos de impresión de gran formato.
Su nueva web, además de ser completamente dinámica, incluye un área para facilitar la comunicación y los procesos de trabajo con sus clientes, permitiéndoles solicitar presupuestos, ver el progreso de sus trabajos, enviar ficheros mediante formularios, arrastrando los archivos desde el ordenador al navegador, mediante Dropbox o mediante cuentas de FTP. Todo ello automatizado para facilitar al máximo el desarrollo de su actividad.
El sitio ha sido desarrollado teniendo en cuenta las nuevas tendencias en diseño fluido y se adapta a cada dispositivo en el que se consulta, ya sea PC de sobremesa, tablet o móvil.
noviembre 3, 2011 at 11:49 am | Blog, Django, Programación | No comment
Esta es cortita.
Django incorpora unas grandes herramientas para traducir los sitios a diversos idiomas, pero hay un pequeño pero: todo debe estar en el mismo idioma base y luego incorporar las traducciones necesarias.
Esto lo he descubierto después de estar unas pocas de horas rebuscando por qué había algunos formularios y cadenas que no se mostraban correctamente en inglés y sólo aparecían en español.
La clave estaba en que los formularios eran parte de una aplicación antigua que había incluido en el proyecto (ya sabes, don’t repeat yourself) y estaban integramente en español. Así que he tenido que pasarlo a inglés y crear el archivo de traducciones a español como para el resto de aplicaciones.
noviembre 26, 2010 at 11:58 am | Blog, Programación | 1 comment
Esta es una rapidita pero muy útil.
Si tienes varios bucles for anidados en una plantilla y necesitas acceder tanto al forloop.counter del padre como al del hijo puedes hacerlo simplemente mediante:
{% for index1 in list %}
{% for index2 in index1 %}
{{ forloop.parentloop.counter }} {{ forloop.counter }}
{% endfor %}
{% endfor %}
noviembre 19, 2010 at 2:19 pm | Blog, Programación | No comment
Esto me ha costado meses descubrirlo.
Desde los primeros días que empecé a programar en Django me encontré con que no tenía un modo simple de comprobar que sólo existiese un objeto, podía comprobar que el count de un queryset fuera < 1, pero cuando iba a actualizarlo plaf, no podía porque efectivamente ya existía un objeto.
La solución está en usar la propiedad initial, que nos devuelve un diccionario con el contenido anterior si es que se va a actualizar el objeto, o un diccionario vacío en caso contrario, con lo que ya se puede diferenciar una situación de la otra.
class CategoryAdminForm(forms.ModelForm):
"""
Formulario para comprobar que no se intentan guardar dos categorías en el mismo nivel/con mismo padre
"""
def clean_slug(self):
if not self.initial:
raise forms.ValidationError(_(u'Ya existe uno'))
return data
mayo 27, 2010 at 9:19 am | Blog, Programación | No comment
Esta mañana estaba refactorizando un poco el código de la aplicación de tiendas antes de subirlo al repositorio de un cliente y me he encontrado con el error que describe el título y que me ha traído de cabeza toda la mañana.
Uno de los cambios que estaba haciendo al código era sustituir líneas del tipo:
from tienda.checkout.models import *
por
from checkout.models import *
para mejorar la portabilidad de las aplicaciones, pero a raíz de eso el sitio dejó de funcionar y lo único que recibía era ese mensaje de error.
A la postre resulta que tenía una estructura de directorios y ficheros tal que así:
cart\
__init__.py
admin.py
models.py
cart.py
views.py
checkout\
__init__.py
admin.py
models.py
checkout.py
views.py
etc.
El problema ocurría cuando python interpretaba los ficheros cart.py y checkout.py (entre otros) e intentaba luego buscar modelos en ellos al tener el mismo nombre que el directorio en el que se encuentran.
La solución una vez sabido esto fué sencilla, cambiar los nombres por cart_functions.py y checkout_functions.py a los archivos y en todos aquellos lugares en los que se usaban.