Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Problema com o passo a passo do artigo de configuração do Django

Olá, estou começando a estudar Django (versão atual: 3.2.5), e a atual formação Django da Alura começa com um artigo para configuração e instalação do Django (versão consultada em 29/07/2021): https://www.alura.com.br/artigos/django-instalacao-configuracao-e-escrevendo-seu-primeiro-app

Porém, ao executar o trecho citado no artigo:

from polls.models import Question, Choice

Recebo:

ModuleNotFoundError: No module named 'polls'

Revisei o passo a passo e não encontrei a causa. Procurei no site da biblioteca Django, e lá encontrei um trecho citando:

from .models import Choice, Question

Mas também não consegui importar desta forma.

Fico pensando que talvez o artigo esteja desatualizado, pois em outros trechos do artigo citava um método que já não é mais atual no Django, motivo pelo qual recebi aviso de 'deprecated'. Mas, talvez tenha faltado alguma compreensão de minha parte, que também não estava no artigo, ou eu não estou vendo onde errei.

Favor, alguém sabe onde está o problema, e poderia ajudar com essa questão?

1 resposta
solução!

Encontrei uma solução para este problema, porém, devido a algumas divergências, as próximas instruções do passo a passo também não funcionam. Alura, favor, solicito revisão e correção/atualização do artigo da Alura (https://www.alura.com.br/artigos/django-instalacao-configuracao-e-escrevendo-seu-primeiro-app), parte integrante da formação Django no site, e que nesta data (31/07/2021) apresenta algumas inconsistências em seu passo a passo.

Fiz diversos testes e comparações, até entender que: from polls.models import Question, Choice #Este trecho se parece muito com o do site do projeto Django (https://docs.djangoproject.com/pt-br/3.2/intro/tutorial02/), porém, lá a palavra "polls" foi o nome dado ao app criado. E no artigo da Alura, o nome do app foi citado como de livre escolha do aluno, conforme trecho abaixo:

especifique o nome do aplicativo no campo Nome e selecione OK

Depois de pesquisar e ler sugestões que recebi em outros lugares, entendi que quando criamos um app, usando o comando python manage.py startapp nome_do_app, ela gera um diretório na raiz do projeto, que se comporta como um pacote Python, com imports e tudo mais.

Ou seja, no artigo, onde consta: from polls.models import Question, Choice

O correto seria: from nome_do_app.models import Question, Choice #Substituindo 'nome_do_app' pelo nome escolhido pelo aluno na etapa de escolha do nome.

Além disso, dependendo de como está configurado o projeto, ambiente virtual e onde o IDE buscará os pacotes python para import, pode ser necessário especificar o caminho completo, tal como exemplo:

from aprendendodjango.nome_do_app.models import Question, Choice

Assim, passamos dessa etapa, mas infelizmente, travamos nas próximas etapas do passo a passo, por outros motivos. Por isso, peço revisão do artigo à Alura.

Obrigado