Skip to content

Latest commit

 

History

History
108 lines (54 loc) · 3.63 KB

apendice-21-decorators.md

File metadata and controls

108 lines (54 loc) · 3.63 KB

Decorators de autenticação

Encontrados no pacote "django.contrib.auth.decorators".

user_passes_test

É útil para definir a lógica para permitir um usuário acessar a uma view. Este decorator recebe uma função (que pode ser um objeto lambda) que retorna True ou False para permitir o acesso de um usuário a uma view.

login_required

A view que usa este decorator só pode ser acessada se houver um usuário autenticado.

permission_required

A view que usa este decorator só pode ser acessada se houver um usuário autenticado e ele deve ser super-usuário ou ter a permissão indicada no argumento do decorator.

Decorators do Admin

Há apenas um, encontrado no pacote "django.contrib.admin.views.decorators".

staff_member_required

A view que usa este decorator só pode ser acessada se houver um usuário autenticado e ele deve ser super-usuário ou ser membro do staff.

Decorators de transações de banco de dados

Decorators úteis para usar recursos de transações no banco de dados. São encontrados no pacote "django.db.transaction".

autocommit

Determina que na view que usa este decorator, todas as persistências em banco de dados são feitas no modo "auto-commit", ou seja, no mesmo instante em que são executadas.

commit_on_success

Determina que todas as persistências feitas ao longo da view devem ser aplicadas no banco de dados somente ao seu final, caso nenhum erro ocorrer.

commit_manually

Determina que as persistências feitas ao longo da view serão aplicadas manualmente em código, usando os métodos "commit()" e "rollback()" do pacote "django.db.transaction"

Decorators para métodos de classes de modelo

Há apenas um, encontrado no pacote "django.db.models".

permalink

Este decorator facilita a criação de métodos em classes de modelo para retornar URLs.

Decorators para template filters

Há apenas um, encontrado no pacote "django.templates.defaultfilters".

stringfilter

Este decorator facilita a criação de template filters para obrigar que estes recebam somente valores em formato Unicode.

Decorators de cache

Encontrados no pacote "django.views.decorators.cache".

cache_page

Determina que o resultado da view deve ser armazenado em cache e determina o tempo de expiração para tal.

cache_control

Atribui diversos parâmetros para o cache da view.

never_cache

Determina que as URLs derivadas desta view nunca devem usar o cache para armazenar ou retornar resultados.

Decorators de variação de cabeçalho HTTP

Encontrados no pacote "django.views.decorators.vary".

vary_on_headers

Determina um parâmetro do cabeçalho HTTP para "variar" o cache local das URLs desta view.

vary_on_cookie

Trata-se de uma variação do "vary_on_cookie" com uma aplicação comum: a variação dependendo da composição dos cookies.

Decorators de compactação GZip

Há apenas um, encontrado no pacote "django.views.decorators.gzip".

gzip_page

Determina que o resultado da view deve ser compactado usando GZip.

Decorators de métodos HTTP

Encontrados no pacote "django.views.decorators.http".

require_http_methods

Estabelece uma lista de métodos HTTP aceitos na view. Métodos HTTP podem ser "GET", "POST", "PUT", "HEAD", "DELETE", "TRACE", "OPTIONS", "CONNECT".

require_GET

Trata-se do decorator "require_http_methods" aplicado a aceitar somente método "GET".

require_POST

Trata-se do decorator "require_http_methods" aplicado a aceitar somente método "POST".