Acompanhamento do estudo
Checks do estudo de Django
Você pode ganhar até 1.0 ponto extra nas provas de Django ao realizar os checks de estudo (cada check realizado e validado antes da prova vale 0.1 pontos).
Os checks devem ser realizados no repositório do GitHub classroom e validados com algum professor. Caso não sejam validados por um professor, os checks não contarão para a nota.
Cada um dos checks abaixo deve ser feito após a conclusão de um handout específico. Faça o handout antes de tentar implementar o check.
-
Criar estrutura básica do projeto Django e executar o servidor localmente. Para validar este check, o professor acessará o endereço
localhost:8000
e não pode ocorrer um erro (exemplo: página não encontrada ou algum erro do servidor). Será feito durante o handout "Configuração". -
Implementação do modelo de anotações:
- Criar o app
notes
; - Adicioná-lo ao
INSTALLED_APPS
; - Criar a classe de modelo
Note
com os campostitle
,content
ecreated_at
usando os tipos adequados; - Criar as migrações;
- Executar as migrações;
- Criar um usuário admin;
- Adicionar o modelo ao Django Admin;
- Adicionar 5 anotações pelo Django Admin;
- Implementar o método
__str__
da classeNote
.
Será feito durante o handout "Modelagem inicial".
- Criar o app
-
Além da view de "hello world", implemente o código necessário para que ao acessar a URL
http://localhost:8000/creditos/
o navegador mostre o HTML:Pode ser feito após a conclusão do handout "URLs e Views".
-
Mostre as anotações guardadas no banco de dados (que você criou pelo Django Admin) na página principal (você não deve mais mostrar o "hello world"). Você deve mostrar uma lista não ordenada (
<ul>
) com o título de uma anotação por item (<li>
). Você não precisa mostrar o conteúdo das anotações por enquanto. Importante: as anotações devem ser apresentadas em ordem descrescente de data de criação, ou seja, as mais recentes devem aparecer primeiro (o métodoorder_by
pode ser útil - consulte a documentação aqui).Pode ser feito após a conclusão do handout "Models, views e URLs".
-
Utilize um template HTML para separar o conteúdo do check anterior em outro arquivo. Nesta versão, inclua também o conteúdo de cada anotação.
Pode ser feito após a conclusão do handout "Templates".
-
Adicione na página inicial um formulário para a criação de novas anotações. Ao clicar no botão de enviar, uma nova anotação deve ser criada e incluida na lista de anotações mostrada na página. A view deve redirecionar para si mesma no caso do método POST.
Será feito durante o handout "O método POST".
-
(Implemente a opção de deletar anotações) Adicione um link para
/anotacoes/ID_DA_ANOTACAO/apagar
(ondeID_DA_ANOTACAO
é um número inteiro representando o id da anotação selecionada) em cada anotação disponível. A view associada a essa URL deve apagar a anotação com o id selecionado do banco de dados e redirecionar para a página principal. Dica: utilize o métododelete
disponível em cada objeto de modelo (consulte a documentação aqui).-
(Implemente a opção de editar anotações) Adicione também um link para
/anotacoes/ID_DA_ANOTACAO
em cada anotação. A view associada a essa URL deve mostrar uma página com os dados da anotação selecionada preenchidos em um formulário. Ao submeter o formulário, a anotação deve ser editada (título e conteúdo), mantendo o mesmo id, e a página deve ser redirecionada para a página principal. -
Deve haver dois links para cada anotação: um para apagar e outro para editar.
-
Você pode editar um objeto no banco de dados carregando-o, modificando os atributos que desejar e então salvando-o novamente.
Pode ser feito após a conclusão do handout "Parâmetros de URL".
-
-
Adicione um estilo básico à sua página. Você deve criar um arquivo CSS separado e então carregá-lo como um arquivo estático em todas as páginas (você deve usar o template base para isso). Você não precisa se preocupar com a estética neste item. Ele apenas deve mostrar que você é capaz de carregar um arquivo CSS no seu HTML. Assim, é suficiente mudar a cor de fundo ou do texto para cumprir o check. Caso tenha interesse, você pode caprichar mais no estilo, mas sugerimos que você deixe isso para depois de terminar os outros checks.
Pode ser feito após a conclusão do handout "Arquivos estáticos".
-
Implemente a autenticação (login e logout):
- Adicione uma página de login na rota
accounts/login/
. Ela deve permitir o login de um usuário com nome de usuário e senha. O usuário deve ter sido cadastrado pelo Django Admin, ou seja, você não precisa criar uma página de cadastro. - Mostre o nome e sobrenome do usuário logado em todas as páginas (adicione essa informação no template base). Para isso, abra os dados dos usuários no Django Admin e adicione nome e sobrenome nos seus usuários para fazer o teste.
- Ao lado do nome e sobrenome, adicione um botão que envia um POST para
accounts/logout/
(para isso será necessário criar um formulário). Esse link deve deslogar o usuário e redirecionar para a página de login. - Force o login na página principal usando
@login_required
. Caso o usuário não esteja logado ele deve ser redirecionado para a página de login.
Pode ser feito após a conclusão do handout "Autenticação".
- Adicione uma página de login na rota
-
Limite as anotações ao usuário que a criou:
- Adicione um campo
owner
do tipoForeignKey
, representando o dono/criador da anotação, no modeloNote
. - Crie e aplique as migrações (você deve informar um usuário padrão durante a criação da migração).
- Modifique o código de criação de anotações (em
notes/views.py
) para adicionar o usuário logado (request.user
) como dono da nova anotação. - Filtre as anotações mostradas na página principal para que apenas as anotações criadas pelo usuário logado sejam mostradas.
- Crie anotações de usuários diferentes para testar a funcionalidade acima.
Pode ser feito após a conclusão do handout "Relacionamentos Entre Modelos".
- Adicione um campo