Ativando o painel admin do django

login_django

Quem é recém chegado no django, encontra como novidade o seu painel administrativo pronto, mesmo que o visual é um pouco ultrapassado, este é um dos recursos que eu mais gosto no framework, principalmente, devido a sua simplicidade e velocidade com que é possível fazer um crud e até lógicas mais complexas, praticamente inacreditável.

Primeiros passos

Ativar o painel admin no django é um processo bastante simples, sendo necessário apenas modificar algumas linhas de código.  Primeiramente abra o arquivo settings.py e localize a variável INSTALLED_APPS, dentro da tupla que representa seu valor, deve-se localizar a linha que contém django.contrib.admin, descomente-a  conforme exemplo logo abaixo.

Após modificado o settings.py, devemos agora modificar o arquivo urls.py e ativar o roteamento do painel adminstrativo, para isso descomente as linhas, conforme marcação abaixo.

Nesse momento já temos nossa aplicação configurada para utilizar o painel administrativo, entretanto, caso você ainda não tenha sincronizado seu banco de dados, agora é obrigatório, então rode o seguinte comando:

Será criada todas as tabelas necessárias para uso do django, também será perguntado se deseja criar um usuário administrador, é importante realizar esta operações, pois, é com ele que você acessará o painel.

Todo processo necessário para poder utilizar o painel administrativo do django já foi realizado, agora nos resta apenas testar. Rode o servidor de desenvolvimento do django.

Abra no browser o endereço http://localhost:8000/admin/ e será então apresentada a tela de login, informe o usuário e senha que você utilizou quando executou o syncdb e congratulations.

django_painel_admin

 

Alguns sites de sucesso escrito em python e django para você se inspirar

Sempre quis aprender python e django? mas nunca ouviu falar de projetos de sucesso que o utilizam? então vou listar alguns sites de sucesso que adotaram o  django e não se arrependeram.

  1. globo.com, uma das empresas brasileiras que mais aposta no django, sendo a maioria dos seus produtos desenvolvidos utilizando o framework, dentre eles destacam-se g1tvgdomingaodofaustao, caldeiraodohuck.
  2. Instagram, rede social com mais de 100 milhões de usuários, recentemente adquirida pelo facebook.
  3. Disqus,  serviço online que oferece uma plataforma centralizada de discussões e postagem de comentários para sites, bastante utilizada em blog, portais de notícias e inclusive neste blog.
  4. Pinterest, rede social de compartilhamento de fotos, que conta atualmente com mais de 25 milhões de usuários cadastrados.
  5. Bitbucket, serviço de hospedagem para projetos versionados pelo mercurial ou git, concorrente direto do github.
  6. Musio – Site de música que visa divulgar artistas independentes.

E agora, já se sente confiante para aventurar nas águas do python e django?.

Auto relacionamento no Django

Auto relacionamento é bastante comum quando necessitamos de utilizar um determinado modelo de forma recursiva, nesse caso é impossível de se criar outras tabelas, pois não sabemos exatamente o nível de profundidade no qual esse relacionamento pode chegar.

Um exemplo ideal para compreendermos a necessidade de auto relacionamento são nas lojas virtuais, onde um determinado departamento possuí varias subcategorias e essas subcategorias podem ou não possuir mais subcategorias e assim sucessivamente, nesse modelo se torna impraticável a criação de novas tabelas para representar essas subcategorias, pois não sabemos até onde podemos chegar.

Construindo auto relacionamento no django

Vamos nesse momento criar o model responsável pelo auto relacionamento :

É possível observar que o atributo parent faz um relacionamento para self, ou seja, para si mesmo, nesse momento já temos um auto relacionamento. Agora já é possível obter a categoria no qual uma subcategoria pertence, porém necessitamos também do processo inverso, onde será possível obter as subcategorias a partir de uma determinada categoria. É ai que entra em jogo o parâmetro related_name,  esse indica qual será o atributo utilizado no processo inverso de relacionamento e o seu valor representa o nome do atributo a ser utilizado na obtenção das subcategorias.