Consultas en Django

2 minute read

Unos pequeños apuntes cogidos al vuelo de consultas en django Un queryset sería el equivalente a un SELECT

Un filter sería el equivalente a un WHERE

Comandos de Query:

Objeto.objects.all() -> Todo el conjunto

Objeto.objects.filter() -> Un filtro para incluir

Objeto.objects.exclude() -> Un filtro para excluir

Objeto.objects.get() -> Busca un solo objeto

Encadenado de filtros Entry.objects.filter(

headline__startswith=’What’

).exclude(

pub_date__gte=datetime.now()

).filter(

pub_date__gte=datetime(2005,1,1)

)

Todos los que empiezan por What entre 1/1/2005 y ahora.

Cada filtro crea una consulta única q1=Entry.objects.filter(headline__startswith=’What’)

q2=q1.exclude(pub_date__gte=datetime.now())

q3=q2.filter(pub_date__gte=datetime(2005,1,1))

Buscar un solo objeto con get() one_entry=Entry.objects.get(pk=1)

Si no hay datos salta la excepción DoesNotExist



from django.core.exceptions import ObjectdoesNotExist

try:

one_entry=Entry.object.get(pk=numero)

except ObjectDoesNotExist, e:

mensaje=("La entrada %n no existe" % (numero))















