Actualizar un contador en un modelo en Django

A veces necesitamos realizar algún tipo de operación aritmética sencilla en el modelo, y queremos que persista en la base de datos. Un ejemplo común es un contador, que queremos incrementar o decrementar en determinadas circunstancias.

Una solución sencilla sería hacerlo directamente en Python, algo como esto:

product = Item.objects.get(pk=4523) product.stock += 1 product.save() Funciona perfecto, pero tiene dos problemas: Uno es una posible condición de carrera, si tenemos la mala suerte de que otro proceso está cambiando el valor del contador stock justo durante el intervalo entre que hemos leído los datos de la base de datos y el momento es que volvemos a salvarlos.

Dos añitos sin publicar nada...

Los primeros 8 bytes de un fichero PNG son siempre los mismos.

Supongamos una función muy sencilla, pero correctamente comentada:

def suma(a, b): '''Esta función acepta dos parámetros, y devuelve la suma de ellos.

Nota: La versión más actualizada de este documento está siempre en

https://github.com/euribates/Charla-DSL/blob/master/Ejemplo-uso-pyparsing.ipynb

Ejemplo de uso de pyparsing

Vamos a utilizar pyparsing para procesar un fichero csv.

El próximo 1 de junio, jueves, a partir de las 18:00 tendremos un nuevo encuentro de desarrolladores para hablar de nuestros temas favoritos: desarrollo, unicornios y cervezas. En esta ocasión tendremos tres charlas:

AWS: Desplegando Python en Amazon PyTesting e integración continua con Travis Vue.js: El framework javascript para muggles Tras las cuales tendremos la segunda parte: networking, vida social, risas y ping pong.

El 11 de marzo tendremos el primer PyDay en Canarias.Un PyDay es una jornada de un día completo sobre el lenguaje de programación Python, con el formato de unas conferencias pero un poco más dinámico. La cita es en la Sala de Estudio Caja Canarias Campus Anchieta. Como el foro es limitado, debéis inscribiros en esta página, pero, por favor, hacedlo sólo si vais a asistir seguro, si no le estareis quitando la plaza a otros ser humano interesado.

Un año más llegamos a la IX edición de este -a veces fatalmente incomprendido- llamamiento a la paz, la esperanza y, por que no decirlo, el amor conocido como el Big Culo Day. Esta vez toca un clásico europeo, Natasha, La azafata de maravillosas formas dibujada por François Walthér, y que ahora esta siendo recuperada en una serie de integrales de Dolmen.

¿Cómo probar las páginas de errores (404, etc...) en desarrollo?

Para ver esas páginas de error, hay que desactivar la opción DEBUG de la configuración. Pero si lo hacemos, los contenidos estáticos dejan de servirse, así que no podemos estar seguros de como se verán las páginas finales, a no ser que instalemos nuestro propio servidor de contenidos estáticos.
Archivo del blog
Etiquetas
Etiquetas
Enlaces interesantes
Cargando