Aula 13 – Curso de Django
Criando uma primeira aplicação com Django e mysql
Explorando o painel administrativo do Django na app Polls
https://docs.djangoproject.com/pt-br/1.11/intro/tutorial02/
Painel administrativo
Gerar o site de administração para sua equipe ou clientes para adicionar, alterar, e deletar conteúdo, é uma tarefa tediosa que não requer criatividade. Por isso, o Django automatiza totalmente a criação da interface de admin para os modelos.
O Django foi desenvolvido em um ambiente de redação, onde havia uma clara separação entre “produtores de conteúdo” e o site “público”.
Gerentes de site usam o sistema para adicionar notícias, eventos, resultado de esportes, cadastrar um novo produto, etc, e o conteúdo é exibido no site público.
O Django traz uma interface unificada para os administradores editarem o conteúdo.
A administração não foi desenvolvida para ser usada pelos visitantes do site, mas sim pelos gerentes.
Criando um usuário administrador
Primeiro temos que criar um usuário que possa acessar o site de administração.
$ python manage.py createsuperuser
Digite seu nome de usuário desejado e pressione enter.
Username: admin
Em seguida, será requisitado seu endereço de e-mail desejado:
Email address: admin@example.com
O último passo é digitar sua senha. Você será solicitado que digite sua senha duas vezes, a segunda vez como uma confirmação da primeira.
Password: **********
Password (again): *********
Superuser created successfully.
Inicie o servidor de desenvolvimento
O site de administração vem ativado por padrão. Vamos iniciar o servidor de desenvolvimento e explora-lo.
Se o servidor não estiver sendo executado, inicie-o da seguinte forma:
python manage.py runserver
Agora, abra o navegador de internet e vá para “/admin/” no seu domínio local – ex:, http://127.0.0.1:8000/admin/
Torne a aplicação de enquetes editável no site de administração
Ela não está visível na página principal do site de administração.
Temos que dizer para o site de administração que os objetos Question possuem uma interface de administração. Para fazer isto, crie um arquivo chamado polls/admin.py, e edite para que fique assim:
from django.contrib import admin
from .models import Question
admin.site.register(Question)
Agora que nós registramos Question, o Django sabe que ela deve ser exibida na página principal do site de administração.
Observações:
O formulário é gerado automaticamente para o modelo Question.
Os diferentes tipos de campos (DateTimeField, CharField) correspondem aos respectivos widgets HTML de inserção.
Cada tipo de campo sabe como se exibir no site de administração do Django.
Cada DateTimeField ganha um atalho JavaScript.
Datas possuem um atalho “Hoje” e um calendário popup, e horas têm um atalho “Agora” e um conveniente popup com listas de horas utilizadas comumente.
A parte inferior da página fornece uma série de opções:
Salvar – Salva as alterações e retorna para a pagina.
Salvar e continuar editando – Salva as alterações e recarrega a página do site de administração para este objeto.
Salvar e adicionar outro – Salva as informações e abre um novo formulário em branco para este tipo de objeto.
Deletar – Exibe uma página de confirmação de exclusão.
Para baixar o código como está até agora, acesse o meu github no link abaixo:
https://github.com/toticavalcanti/django_course/tree/admin_panel
AULA 12
AULA 14
Todas as Aulas da App Polls
Página Principal
Obrigado
Até a próxima
Caro Toti
Parabéns pelo excelente trabalho. Sua didática é muito clara e objetiva. Estou seguindo o curso sem maiores dificuldades.
Gastei um tempo maior com um erro ao instalar o mysqlclient (já resolvido).
Agora deparei-me com um novo problema. Caso possa ajudar agradeço.
Ao tentar acessar a área administrativa do Django (aula 13) aparece no navegador a mensagem “A server error occurred. Please contact the administrator.”
No prompt do DOS a mensagem é extensa, mas começa com:
[12/Jun/2018 14:30:04] “GET /admin/ HTTP/1.1” 302 0
Internal Server Error: /admin/login/
Traceback (most recent call last):
File “D:\IAFBA\Ambientes_Virtuais\virtual_01\lib\site-packages\django\core\handlers\exception.py”, line 35, in inner
response = get_response(request).
Existem vária linhas com mensagens similares a esta.
Olá Jorge, você criou o superuser? Se criou deleta ele com:
django-admin.py shell
depois:
from django.contrib.auth.models import User
User.objects.get(username=”seunome”, is_superuser=True).delete()
Crie novamente um superuser com:
python manage.py createsuperuser
Abs,
Toti