Seguinte, falando com um amigo meu, ele me confidenciou um fato muito importate. Vamos ver se vocês concordam comigo. Pergunto: Como se chama a "Espanhola" na Espanha? Espanhola minha gente, naum tow me referindo à pessoa rsrsrs. De qualquer forma, diz aí, como se chama? Lá eles chamam de "cubana"! rsrsrs, interessante não? Gostaria de saber as raízes desse apelido diferente. Mas, se vocês pensarem bem, cuba é conhecido por fazer charuto e ter bom médico. Ignorando a parte medicinal da coisa, vamos para os charutos. Lá, os charutos são feitos de forma artezanal, onde os trabalhadores, no nosso caso, as mulheres, ficam com o fumo nas pernas, sabe. É lá que o bichin é enrolado. Rrsrsrs, nunca chega até a área mais fofinha das fêmeas. Elas ficam com o fumo entre as pernas! Rrsrsrs; Aí faz vc pensar...o apelido então naum se justifica. Bla bla bla. De qualquer forma, essa informação em muito enriqueceu o meu dia.
Como não poderia deixar de faltar, Momento Carlito!
Momento Carlito : Dê dinheiro mas não dê confiânça.
Pq num é todo mundo que sabe usar confiança direito ; )
Então, vamos ao que interessa! Seguinte, hoje tenho um truque super legal com o Django, o framework WEB do Chuck Norris! Minha pessoa, enquanto codificando um aplicativo que precisava de um fórum, me deparei com a tarefa de implementar um contador de mensagens, tópicos, etc. Algo como: Criou um tópico, aumenta o contador do Fórum. Pois é, ao invés de fazer essa "árdua", quase brutal tarefa, na view, resolvi fazer via signals. Para quem não sabe o que é o sistema de signals do django, saiba que é como se fosse um disparador de eventos. Quando vc executa uma ação no modelo, um evento é disparado. Aí, se vc atrelar um conjunto de ações ao trigger do evento, vc pode fazer algumas mágicas bem legais. Ok, chega de lenga lenga. É hora do EXEEEEEMPLOOOOO!!!!
from django.db.models import signals
from django.dispatch import dispatcher
#importando o dispatcher e o signals
# use esta assinatura de método para ser feliz!
# instance é o objeto que chamou o evento
# sender é a classe do infeliz
# signal é o sinal enviado
# o resto é o de sempre
def topico_post_save(sender, instance, signal, *args, **kwargs):
if kwargs['created']:
# checa se o objeto esta sendo criado
instance.algo.contador += 1
instance.algo.save()
# ligando a ação ao evento
# primeiro argumento é o método
# o segundo é o evento a ser escutad
# o terceiro é a classe que manda o evento
dispatcher.connect(topico_post_save, signal=signals.post_save, sender=CLASSE)
Pronto, sempre que vc criar uma CLASSE, o contador de 'algo' vai ser atualizado. Bonitin, neh?
Ah sim, para quem não conhece, Chuck Norris
Muito legal saber de outros desenvolvedores Django aqui no Ceará ;)
ResponderExcluir