viernes, 30 de mayo de 2008

lunes, 26 de mayo de 2008

Webprendededor Concepción 2008



Se ven algunas charlas interesantes: Los chicos de Needish, Metrik y el Francotirador, entre otros.

A apoyar este tipo de iniciativas!
En Concepción el día sábado 31 de Mayo

Más encima en el mismo lugar donde estudié...
De allá somos...

import datetime vs from datetime import datetime

Para todos los que desarrollan en Python:

Si van a usar la libraría datetime

Es preferible hacer esto:
import datetime
dtnew = datetime.datetime(2008,5,20)


Que esto:
from datetime import datetime
dtnew = datetime(2008,5,20)


Pues usando el segundo caso, si hacen import de otro modulo que esté
usando datetime, el intérprete se puede marear con los nombres y
pueden haber errores como:
Module object is not callable
TypeError: descriptor 'time' requires a 'datetime.datetime' object but
received a 'int'



Por último si les da demasiada lata escribir datetime muchas veces
pueden hacer algo como esto:
from datetime import datetime as dtime
dtnew = dtime(2008,5,20)

Así no se vuelve a usar el nombre datetime como función y objeto(not
callable) a la vez.

miércoles, 21 de mayo de 2008

Búsquedas por date y datetime

Haciendo un filtro por fechas me di cuenta que no era lo mismo hacer

date1 = datetime.datetime.now().date() (date1 es tipo date)
xxxx.objects.filter(date__lte=date1)

que

date2 = datetime.datetime.now() (date2 es tipo datetime)
xxxx.objects.filter(date__lte=date2)

Obvio, uno de ellos considera horas, minutos y segundos

Así que ojo si hay que decidir un intervalo de días para datos tipo datetime, hay que considerar el día completo:
'2008-05-21 23:59:59'

O sea:
date2= datetime.combine(date1, time(23,59,59))

miércoles, 7 de mayo de 2008

Cómo truncar palabras my largas en la template

{{ object.comments|truncatewords:15|make_list|slice:":80"|join:"" }}
{% if object.comments|truncatewords:15|make_list|slice:":80"|length_is:"80" %} ...{% endif %}

Lo que hice fue pasar el string a una lista, cortarlo, y luego hacer un join para volver a convertirlo string, para dejarlo más bonito: un if que si coincide en largo con el string cortado le agrega los puntos suspensivos ...

La otra opción era armarse una función para el sistema de templates, como aquí:
http://www.djangosnippets.org/snippets/163/

Pero a mí, hacer eso me dió lata :-)