Referência de sinais embutidos¶
Uma lista de todos os sinais que o Django envia.
See also
O framework de comentários envia um conjuntos de sinais relacionados a ele.
Sinais de model¶
O módulo django.db.models.signals
define um conjunto de sinais enviados
pelo sistema de módels.
Warning
Muitos destes sinais são enviado por vário métodos de model como
__init__()
ou
save()
que você pode sobrescrever no seu
próprio código.
Se você sobrescreve estes métodos no seu próprio model, você deve chamar os método da classe pai para que este sinal seja enviado.
Note também que o Django armazena manipuladores de sinais como referências fracas por padrão, então se seu manipulador for uma função local, ela poderia ser “garbage collected”. Para previnir isso, passeweak=False
quando você chamar o métodoconnect()
.
pre_init¶
-
django.db.models.signals.
pre_init
¶
Sempre que você instanciar um model do Django, este sinal é enviado no início
do método __init__()
do model.
Argumentos enviados com este sinal:
sender
- A classe de model que acabou de ter uma instância criada.
args
- Uma lista de argumentos posicionais passados para
__init__()
: kwargs
- Um dicionário de argumentos nomeados passados para
__init__()
:.
Por exemplo, o tutorial tem esta linha:
p = Poll(question="What's up?", pub_date=datetime.now())
Os argumentos enviados para um manipulador pre_init
seriam:
Argumento | Valor |
---|---|
sender |
Poll (a classe em si) |
args |
[] (uma lista vazia, porque não houve argumentos
posicionais passados para __init__ .) |
kwargs |
{'question': "What's up?", 'pub_date': datetime.now()} |
post_init¶
-
django.db.models.signals.
post_init
¶
Como o pre_init, mas este é enviado quando o método
__init__()
: finaliza.
Argumentos enviados com este sinal:
sender
- Como acima: a classe que acabou de ter uma instância criada.
instance
- A instância atual do model que acabou de ser criado.
pre_save¶
-
django.db.models.signals.
pre_save
¶
Este é enviado no início do método save()
.
Argumentos enviardos com este sinal:
sender
- A classe model.
instance
- A instância atual sendo salva.
post_save¶
-
django.db.models.signals.
post_save
¶
Como pre_save
, mas enviado ao final do método
save()
.
Argumentos enviados com este sinal:
sender
- A classe model.
instance
- A instância atual sendo salva.
created
- Um booleano;
True
se o novo dado foi criado.
pre_delete¶
-
django.db.models.signals.
pre_delete
¶
Enviado no início do método de model delete()
.
Argumentos enviados com este sinal:
sender
- A classe model.
instance
- A instância atual sendo criada.
post_delete¶
-
django.db.models.signals.
post_delete
¶
Como pre_delete
, mas enviado ao final do método
delete()
.
Argumentos enviados com este sinal:
sender
- A classe model.
instance
A instância atual sendo criada.
Note que o objeto não estará mais no banco de dados, portanto seja muito cuidadoso com o que faz com esta instância.
class_prepared¶
-
django.db.models.signals.
class_prepared
¶
Enviado sempre que uma classe de model estiver sendo “preparada” – isto é, uma vez que o model tenha sido definido e registrado no sistema de model do Django. O Django usa este sinal internamente; ele geralmente não é usado em aplicações de terceiros.
Argumentos que são enviados com este sinal:
sender
- A classe model que acabou de ser preparada.
Gerenciamento de sinais¶
Sinais enviados pelo django-admin.
post_syncdb¶
-
django.db.models.signals.
post_syncdb
¶
Enviado pelo syncdb
depois de instalar uma aplicação.
Qualquer manipulador que ouve este sinal, precisa ser escrito num lugar
específico: num módulo management
numa de suas INSTALLED_APPS
. Se
o manipulador estiver registrado em algum outro lugar eles podem não ser
carregados pelo syncdb
.
Argumentos enviados com este sinal:
sender
- O módulo
models
que acabou de ser instalado. Isto é, se osyncdb
acabou de instalar uma aplicação chamada"foo.bar.myapp"
, osender
será o módulofoo.bar.myapp.models
. app
- O mesmo que o
sender
. created_models
- Uma lista de classes model de qualquer applicação que o
syncdb
tenha criado até agora. verbosity
Indica a quantidade de informações que o manage.py imprime na tela. Veja o flag
--verbosity`
para detalhes.Funções que ouvem o
post_syncdb
deve ser ajustar o que vão mostrar na tela baseado no valor deste argumento.interactive
Se
interactive
forTrue
, ele assegura-se de abrir um prompt para usuário digitar coisas na linha de comando. Se ointeractive
forFalse
, as funções que ouvem este sinal não devem tentar abrir um prompt para nada.Por exemplo, a aplicação
django.contrib.auth
somente abre um prompt para criar um superusuário quando ointeractive
éTrue
.
Sinais Request/response¶
Sinais enviados pelo core do framework quando processa uma requisição.
request_started¶
-
django.core.signals.
request_started
¶
Enviado quando o Django começar a processar uma requisição HTTP.
Argumentos enviados com este sinal:
sender
- A classe manipuladora – i.e.
django.core.handlers.modpython.ModPythonHandler
oudjango.core.handlers.wsgi.WsgiHandler
– que manipula a requisição.
request_finished¶
-
django.core.signals.
request_finished
¶
Enviado quando o Django finaliza o processamento da requisição HTTP.
Argumentos enviados com este sinal:
sender
- A classe manipuladora, como acima.
got_request_exception¶
-
django.core.signals.
got_request_exception
¶
Este sinal é enviado sempre que o Django encontra uma exceção enquanto processa uma chegada de requisição HTTP.
Argumentos enviados com este sinal:
sender
- A classe manipuladora, como acima.
request
- O objeto
HttpRequest
.
Sinais de Test¶
Sinais que somente são enviados quando estão rodando testes.
template_rendered¶
-
django.test.signals.
template_rendered
¶
Enviados quando o sistema de teste renderiza um template. Este sinal não é emitido durante uma operação normal do servidor do Django – ele somente está disponível durante o teste.
Argumentos enviados com este sinal:
- sender
- O objeto
Template
que foi renderizado. - template
- O mesmo que o sender
- context
- O
Context
com que o template foi renderizado.