Página inicial do Grupos do Google
Ajuda | Acessar
count(*)
Há um número excessivo de tópicos que aparecem em primeiro plano neste grupo. Para fazer com que este tópico apareça primeiro, elimine essa opção de um outro tópico.
Erro ao processar a solicitação. Tente novamente.
sinalizar
  5 mensagens - Recolher todas
O grupo no qual você está postando é um grupo da Usenet. As mensagens postadas neste grupo farão com que o seu e-mail fique visível para qualquer pessoa na Internet
Sua resposta não foi enviada.
Post publicado
João Vitor  
Ver perfil
 Mais opções 2 maio, 15:12
De: João Vitor <alters...@gmail.com>
Data: Fri, 2 May 2008 11:12:19 -0700 (PDT)
Local: Sex 2 maio 2008 15:12
Assunto: count(*)
Fala galera, beleza?

Sou novato no Django, ando estudando conforme tenho tempo e me deparei
com um problema que em PHP seria tão idiota de simples que no django
tá parecendo um monstro, hehe...

É o seguinte: tenho uma classe chamada "Tipo" e outra "Empresa". Eu
gostaria de exibir na página de Tipos, todas as empresas que estão
dentro daquele tipo...

Em termos de SQL, seria:
SELECT count(*) FROM empresas WHERE id_tipo = 1 ; (esse 1 no caso, é o
id do tipo do loping de listagem)

Eu tentei tanta coisa que nem sei mais oq tentar.... Acabei largando
por "gambiarra" isso:

    # define quantidade de registros por tipo
    def qtd_registros(self):
        qtd = Empresa.objects
        return qtd.count()

Só que nessa função aí, onde eu colocaria o "WHERE id_tipo =
tipo_do_looping"?

Não estou usando o newforms, to fazendo tudo no models por enquanto!

Obrgado!


    Responder ao autor    Encaminhar  
É necessário Efetuar login antes de postar mensagens.
Para postar uma mensagem você precisa primeiro participar deste grupo.
Atualize seu apelido na página de configurações da inscrição antes de postar.
Você não tem a permissão necessária para postar.
Marinho Brandao  
Ver perfil
 Mais opções 2 maio, 15:29
De: "Marinho Brandao" <mari...@gmail.com>
Data: Fri, 2 May 2008 15:29:48 -0300
Local: Sex 2 maio 2008 15:29
Assunto: Re: [django-brasil] count(*)
Olá João Vitor,

seja bem-vindo à orientação à objetos! :)

bom, digamos quo campo da classe Empresa que faça referencia ao Tipo seja assim:

class Empresa(models.Model):
    tipo = models.ForeignKey(Tipo)

entao a classe tipo terá um atributo assim (considerando que tipo =
Tipo.objects.get(id=1), por exemplo):

>>> tipo.empresa_set

que é uma QuerySet, ou seja, isso faz o q vc quer:

>>> tipo.empresa_set.count()

2008/5/2 João Vitor <alters...@gmail.com>:

--
Marinho Brandão (José Mário)
http://marinho.webdoisonline.com/

    Responder ao autor    Encaminhar  
É necessário Efetuar login antes de postar mensagens.
Para postar uma mensagem você precisa primeiro participar deste grupo.
Atualize seu apelido na página de configurações da inscrição antes de postar.
Você não tem a permissão necessária para postar.
Italo Maia  
Ver perfil
 Mais opções 2 maio, 16:36
De: Italo Maia <italo.m...@gmail.com>
Data: Fri, 2 May 2008 12:36:06 -0700 (PDT)
Local: Sex 2 maio 2008 16:36
Assunto: Re: count(*)
João Vitor, ao aprender uma nova tecnologia, é sempre bom estar com
uma mente aberta. Se você ficar se prendendo a comparações com outras
linguagens, o próprio processo de aprendizado torna-se menos
prazeroso. Tente ver algo novo como "algo novo"! Quando vc se sentir
seguro com aquilo que aprendeu, aí sim é uma boa começar a comparar.
Tipo, essa é só uma dica de aprendizado. Talvez vc nem precise, mas
fica aí a sugestão.

(um amigo meu que está saindo do php agora andou apresentando sintomas
parecidos rsrsrsrs)

On 2 maio, 15:29, "Marinho Brandao" <mari...@gmail.com> wrote:


    Responder ao autor    Encaminhar  
É necessário Efetuar login antes de postar mensagens.
Para postar uma mensagem você precisa primeiro participar deste grupo.
Atualize seu apelido na página de configurações da inscrição antes de postar.
Você não tem a permissão necessária para postar.
João Vitor  
Ver perfil
 Mais opções 5 maio, 09:38
De: João Vitor <alters...@gmail.com>
Data: Mon, 5 May 2008 05:38:21 -0700 (PDT)
Local: Seg 5 maio 2008 09:38
Assunto: Re: count(*)
Opa Marinho!

Depois de ler teu post umas 30x e não entender, joguei o código lá e
funfou hahaha...daí comecei a entender (ou ao menos pensar que
entendi) o esquema... vc pode confirmar pra mim?

A classe2 possui uma foreign key da classe1, logo, posso chamar um
JOIN na classe1 apenas usando o método "classe2_set"? Esse "set" já
faz os vínculos devidos? Só fica faltando passar os parâmetros?

Realmente é um outro paradigma...havia programado algo bem básico em
orientação a objetos, mas nunca com frameworks, nunca indo até o
"fundo", então, tu deve imaginar como to tomando um coro desse python/
django hehe...

Brigadão pela força!

On May 2, 3:29 pm, "Marinho Brandao" <mari...@gmail.com> wrote:


    Responder ao autor    Encaminhar  
É necessário Efetuar login antes de postar mensagens.
Para postar uma mensagem você precisa primeiro participar deste grupo.
Atualize seu apelido na página de configurações da inscrição antes de postar.
Você não tem a permissão necessária para postar.
Andrews Medina  
Ver perfil
 Mais opções 5 maio, 11:35
De: "Andrews Medina" <andrewsmed...@gmail.com>
Data: Mon, 5 May 2008 10:35:08 -0400
Local: Seg 5 maio 2008 11:35
Assunto: Re: [django-brasil] Re: count(*)

>  Realmente é um outro paradigma...havia programado algo bem básico em
>  orientação a objetos, mas nunca com frameworks, nunca indo até o
>  "fundo", então, tu deve imaginar como to tomando um coro desse python/
>  django hehe...

É.. Acho que tu entendeu, mas vou re-explicar de uma maneira
diferente, passo a passo para clarear um pouco  mais. Vamos, lá:

Para selecionar todas as empresas utilizamos o método all:

>>> Empresa.objects.all()

Para filtrar as empresas pelo tipo é possível fazer isso através do
método filter e passando o nome do campo + ___ + o nome do campo da
ForeignKey ex:

>>> Empresa.object.filter(tipo__id=1)

Agora para retornar a quantidade de empresas é só utilizar o método
count no final da query:

>>> Empresa.objects.filter(tipo__id=1).count()

Essa maneira que citei é uma das maneiras de se fazer isso. Outra
maneira de objets a listagem das empresas é utilizar o set_empresas do
model Tipo, como o Marinho tinha mostrado:

>>> Tipo.objects.filter(id=1).empresa_set

Ou seja, Tipo.objects.filter(id=1).empresa_set trás o mesmo retorno
que Empresa.object.filter(tipo__id=1) ai você pode usar qualquer uma
das duas maneiras dependendo do seu caso.

E para finalizar, para obter a contagem de empresas de um tipo através
do model Tipo com o atributo empresa_set basta adicionarmos o método
count:

>>> Tipo.objects.filter(id=1).empresa_set.count()

Espero ter ajudado,

[]'s

--
Andrews Medina
www.andrewsmedina.com


    Responder ao autor    Encaminhar  
É necessário Efetuar login antes de postar mensagens.
Para postar uma mensagem você precisa primeiro participar deste grupo.
Atualize seu apelido na página de configurações da inscrição antes de postar.
Você não tem a permissão necessária para postar.
Fim das mensagens
« Voltar a Discussões « Tópico recente     Tópico antigo »

Criar um grupo - Grupos do Google - Página inicial do Google - Termos de Uso - Política de Privacidade
©2008 Google