Será mostrado algumas queries que facilitarão no dia a dia.
Model que vamos utilizar para as queries:
class Categoria(models.Model):
nome = models.CharField(max_length=100)
def __unicode__(self):
return self.nome
class Artigo(models.Model):
categoria = models.ForeignKey(Categoria)
nome = models.CharField(max_length=255)
texto = models.TextField()
dt_criacao = models.DateTimeField()
dt_modificacao = models.DateTimeField()
def __unicode__(self):
return self.nome
Retornar todos os registros da classe
artigos = Artigo.objects.all()
Retorna apenas os artigos que são da categoria 1
artigos = Artigo.objects.filter(categoria=1)
Retorna apenas os artigos que são da categoria com nome Jogos
artigos = Artigo.objects.filter(categoria__nome='Jogos')
Retorna apenas os artigos que são da categorias [1,2,3,4]
categorias = [1,2,3,4]
artigos = Artigo.objects.filter(categoria__in=categorias)
Retorna apenas os artigos que são da categorias [1,2,3,4]
categorias = [1,2,3,4]
artigos = Artigo.objects.filter(categoria__in=categorias)
Retorna apenas 10 artigos
artigos = Artigo.objects.all()[:10]
Retorna apenas as categorias diferentes de 1
artigos = Artigo.objects.exclude(categoria=1)
Retorna os artigos com a data de criacao com o ano igual 2012
from datetime import datetime
artigos = Artigo.objects.filter(dt_criacao__year='2012')
Retorna os artigos que começam com o nome Artigo 1
artigos = Artigo.objects.filter(nome__startswith="Artigo 1")
Retorna os artigos que possuem django também ignorando se são maiúsculos ou minúsculos
artigos = Artigo.objects.filter(nome__icontains="django")
Retorna os artigos ordenados pelo nome
artigos = Artigo.objects.order_by('nome')
data de criação maior ou igual
from datetime import datetime
artigos = Artigo.objects.filter(dt_criacao__gte=datetime.now())
data de criação menor ou igual
from datetime import datetime
artigos = Artigo.objects.filter(dt_criacao__lte=datetime.now())
😉