Version 2 (modified by 18 years ago) ( diff ) | ,
---|
THIS TRANSLATION IS IN PROGRESS:
This is an in progress translation document, that means there is somebody working on it. For more information on translating documents please look at TranslateDocumentation Wiki. Please do not edit this page. |
Redirecionamento de Aplicação
Django vem com uma aplicacao de redirecionamento como opção. Ela permite que você armazene endereços(URLs) em uma base de dados e gerencia o redirecionamento para você.
Instalação
Para instalar a aplicação de redirecionamento, siga estes passos:
- Adicione 'django.contrib.redirects' em INSTALLED_APPS no seu arquivo settings.py.
- Adicione 'django.contrib.redirects.middleware.RedirectFallbackMiddleware' em MIDDLEWARE_CLASSES no seu arquivo settings.py.
- Execute o comando manage.py syncdb.
Como funciona
manage.py syncdb cria uma tabela chamada django_redirect no banco de dados. Esta é uma simples tabela de referência contendo os campos site_id, old_path e new_path.
RedirectFallbackMiddleware faz todo o trabalho. Toda vez que uma aplicação Django gerar um erro 404, Ele checa a base de dados procurando pela URL requisitada, como ultimo recurso. Especificamente, ele verifica esta URL em old_path com um ID que coresponda com SITE_ID do arquivo settings.py.
- Caso a URL seja encontrada e new_path não esteja vazio, acontece o redirecionamento para new_path.
- Caso a URL seja encontrada e new_path esta vazio, este gera um erro 410 ("Gone") não há endereço para redirecionamento.
- Caso nenhuma URL seja encontrada, a requisição continua a ser procesada de forma usual.
Esta aplicação trata somente erros 404 -- não trata erros 500 ou resposde há qualquer outro código de erro.
Note que a orden do MIDDLEWARE_CLASSES importa. Geralmente, você pode colocar RedirectFallbackMiddleware no final da lista, porque ele é o ultimo recurso.
Para mais sobre middleware, leia middleware docs.
Como adicionar, modificar ou deletar redirecionamentos
Atraves da interface de administração
Se você está com a interface de administração do Django ativa, você deve ver uma seção "Redirects" na página inicial da interface de administração. Edite os redirecionamentos da mesma forma como você edita qualquer outro objeto no sistema.
Atraves da API Python
Redirecionamentos são representados por um módulo Django padrão, localizado em django/contrib/redirects/models/redirects.py. Você pode acessar esse módulo atraves da API da base de dados Django.