{{{ #!rst 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. | | | | .. _TranslateDocumentation Wiki : http://code.djangoproject.com/wiki/TranslateDocumentation | +-------------------------------------------------------------------------------------------------+ .. sidebar:: Escrevendo sua primeira aplicação Django, parte 2 :subtitle: tradução para o português. Documento original: `Writing your first Django app, part 2`_ Tradução: Marcos Vinícius `` Referente a revisão: 3454 .. _Writing your first Django app, part 2: http://www.djangoproject.com/documentation/tutorial2/ .. contents:: **Conteúdos do capítulo** ================================================= Escrevendo sua primeira aplicação Django, parte 2 ================================================= Este documento cobre a versão 0.95 de Django e a versão do desenvolvimento. Docs anteriores: `0.90`_, `0.91`_ ---------------------------------------------------------------------------------------------------------------- .. _0.90: http://www.djangoproject.com/documentation/0_90/ .. _0.91: http://www.djangoproject.com/documentation/0_91/ Esse tutorial começa onde o `Tutorial 1`_ terminou. Nós vamos continuar nossa aplicação de "Questionário Web" e focar no site de administração gerado pelo Django. .. _`Tutorial 1`: http://www.djangoproject.com/documentation/tutorial1/ .. admonition:: Filosofia Gerar sites de aministração para sua equipe ou clientes criar, atualizar e excluir informações é um trabalho chato e não requer muita criatividade. Por isso, Django automatiza totalmente a criação de interfaces de administração para seus models. Django foi escrito num ambie nte jornalístico, com uma clara separação entre "quem publica o conteúdo" e o "site público". Os gerenciadores do site usam o sistema para adicionar noticias, eventos, resultados esportivos, etc, e o conteúdo é mostrado no site público. Django resolve o problema de criar uma interface unificada para os administradores do site editar conteúdo. A interface de administração não tem a intenção de ser usada pelos visitantes do site, mas sim pelos administradores do site. Ative o site de Administração ============================= O site de administração do Django não é ativo por padrão - é um recurso opcional. Para ativar o site de administração na sua instalação, siga esses três passos: * Adicione ``django.contrib.admin`` em ``INSTALLED_APPS`` no seu arquivo de settings * Execute ``python manage.py syncdb``. Como você adicionou uma nova aplicação em ``INSTALLED_APPS``, as tabelas do banco de dados precisam ser atualizadas. * Edite seu arquivo ``mysite/urls.py`` e descomente a linha "Uncomment this for admin:". Esse arquivo é um URLConf; nós vamos nos aprofundar em URLConfs no próximo tutorial. Por enquanto, tudo que você precisa saber é que eles mapeiam as URLs para as aplicações. Inicie o servidor de desenvolvimento: ===================================== Vamos iniciar o servidor de desenvolvimento e explorar o site de administração. Lembre que no Tutorial 1 você iniciou o servidor de desenvolvimento da seguinte forma:: python manage.py runserver Abra um web browser e vá para "/admin/" no seu domínio local, ex: http://127.0.0.1:8000/admin/. Você deverá ver a seguinte tela de login: .. image:: http://media.djangoproject.com/img/doc/tutorial/admin01.png :alt: Tela de login do site de administração do Django Entre no site de administração: =============================== Agora, tente logar. (Você criou uma conta de superusuário na primeira parte deste tutorial, lembra?!) Você deverá ver a pagina index do site de administração do Django: .. image:: http://media.djangoproject.com/img/doc/tutorial/admin02t.png :alt: Index do site de administração :target: http://media.djangoproject.com/img/doc/tutorial/admin02.png Por padrão, você deverá ver dois tipos de conteúdo editavel: "groups" e "users". Esses são as principais características que o Django traz por padrão. Fazendo a aplicação Poll acessível no admin: ============================================ Mas, onde está nossa aplicação Poll? Ela não foi mostrada no index do admin. Apenas uma coisa a fazer: nós temos que especificar no model ``Poll`` que seus objetos tem uma interface admin. Edite o arquivo ``mysite/polls/models.py`` e faça a seguinte alteração para criar uma classe interna chamada ``Admin``:: class Poll(models.Model): # ... class Admin: pass A ``classe Admin`` conterá todas as configurações que controlam como esse model aparece no admin. Todas as configurações são opcionais, entretanto, criando uma classe vazia significa "dê a esse objeto uma interface no admin usando todas as configurações padrão". Agora atualize a pagina do admin para ver as mudanças. Note que você não tem que reiniciar o servidor de desenvolvimento - o servidor vai recarregar automaticamente seu projeto, então qualquer modificação no código será vista imediatamente no browser. Explore as funcionalidades do admin: ==================================== Agora que o model ``Poll`` tem uma classe interna ``Admin``, Django sabe que ela deve ser mostrada no index do admin. .. image:: http://media.djangoproject.com/img/doc/tutorial/admin03t.png :alt: A página index do site de administração do Django, agora com os objetos Poll mostrados :target: http://media.djangoproject.com/img/doc/tutorial/admin03t.png Clique em "Polls". Agora você está na pagina "change list" de polls. Essa página mostra todos os polls no banco de dados e deixa você escolher um para altera-lo. Lá está o poll "What's up?" criado no primeiro tutorial: .. image:: http://media.djangoproject.com/img/doc/tutorial/admin04t.png :alt: A "change list" do model Poll :target: http://media.djangoproject.com/img/doc/tutorial/admin04.png Clique no poll "What's up?" para editá-lo: .. image:: http://media.djangoproject.com/img/doc/tutorial/admin05t.png :alt: O formulário de edição para o objeto Poll :target: http://media.djangoproject.com/img/doc/tutorial/admin05.png Algumas coisas para se notar: * O formulário é gerado automaticamente a partir do model Poll. * Os diferentes tipos de campo (``models.DateTimeField``, ``models.CharField``) sabem como "se mostrarem" no admin. * Cada ``DateTimeField`` tem alguns atalhos em JavaScript. Datas tem um atalho "Today" e um calendário (em pop-up), e horários tem um atalho "Now" e um conveniente pop-up que lista horas freqüentemente usadas. A parte de baixo da página lhe dá algumas opções: * Save - salva as alterações e retorna para a "change list". * Save and continue editing - salva as alterações e atualiza a pagina do admin para esse objeto. * Save and add another - salva as alterações e carrega um novo formulário em branco para esse tipo de objeto * Delete - mostra uma página de confirmação de deleção }}}