Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

[Dúvida] Erro ao iniciar python manage.py runserver

Olá pessoal, boa tarde!

Estimo que estejam tudo bem com vocês.

Por gentileza, alguém poderia me ajuda?

Na parte quando dou o comando python manage.py runserver

 File "C:\Users\Alans\AppData\Local\Programs\Python\Python311\Lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "C:\Users\Alans\Documents\Alura\Django autenticação de formulários e alerta\projetos\alura_space\usuarios\urls.py", line 2, in <module>
    from usuarios.views import login, cadastro
  File "C:\Users\Alans\Documents\Alura\Django autenticação de formulários e alerta\projetos\alura_space\usuarios\views.py", line 3, in <module>
    from usuarios.forms import LoginForms, CadastroForms
ImportError: cannot import name 'CadastroForms' from 'usuarios.forms' (C:\Users\Alans\Documents\Alura\Django autenticação de formulários e alerta\projetos\alura_space\usuarios\forms.py)

Apresenta esse erro!

urls.py

from django.urls import path
from usuarios.views import login, cadastro


urlpatterns = [
   path('login', login, name='login'),
   path('cadastro', cadastro, name='cadastro')
]

views.py

from django.shortcuts import render

from usuarios.forms import LoginForms, CadastroForms

def login(request):
    form = LoginForms()
    return render(request, "usuarios/login.html", {"form": form})

def cadastro(request):
    form = CadastroForms()
    return render(request, "usuarios/cadastro.html", {"form": form})

Obrigado!!!

6 respostas

Bom dia, Alan! Como vai?

Espero esteja tudo bem com você e sua família!

O erro: "ImportError: cannot import name 'CadastroForms' from 'usuarios.forms'", informa que não foi possível importar a classe CadastroForms dentro do arquivo "forms.py", que, por sua vez, está dentro da pasta "usuarios". Cheque se essa classe realmente existe, se existe, certifique-se que está importando com o caminho correto.

No mais, os códigos que você compartilhou não apresenta nenhum problema de sintaxe, além da inconsistência da importação. E verifique também se está com o ambiente virtual ativado.

Espero que isso resolva o seu problema! Se tiver mais alguma dúvida, estou à disposição.

Grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Olá! Armano barros, bom dia.

Estamos bem!

Estimo que esteja tudo bem, contigo e a sua família.

Muito obrigado!!!

Mas mesmo assim persiste o mesmo erro. Voltei na aula, mesmo copiando o código ainda fica apresentando o erro! ImportError: cannot import name 'CadastroForms' from 'usuarios.forms'

Aula: https://cursos.alura.com.br/course/django-autenticacao-formularios-alerta/task/119193

Vou te passar os códigos... Por obséquio, quando tu poder da uma olhada para mim?

forms.py

from django import forms

class LoginForms(forms.Form):
    nome_login = forms.CharField(
        label='Nome de Login', 
        required=True, 
        max_length=100,
        widget=forms.TextInput(
            attrs={
                'class':' form-control',
                'placeholder': 'EX.: João Silva'

            }
        )
    )
    senha = forms.CharField(
        label='Senha',
        required=True,
        max_length=70,
        widget=forms.PasswordInput(
            attrs={
                'class':' form-control',
                'placeholder': 'Digite sua senha'
            }
        )
    )

    class CadastroForms(forms.Form):
      nome_cadastro = forms.CharField(
        label='Nome de Cadastro', 
        required=True, 
        max_length=100,
        widget=forms.TextInput(
            attrs={
                'class': 'form-control',
                'placeholder': 'Ex.: João Silva',
            }
        )
    )
    email=forms.EmailField(
        label='Email',
        required=True,
        max_length=100,
        widget=forms.EmailInput(
            attrs={
                'class': 'form-control',
                'placeholder': 'Ex.: joaosilva@xpto.com',
            }
        )
    )
# código omitido
    senha_1 = forms.CharField(
        label='Senha', 
        required=True, 
        max_length=70,
        widget=forms.PasswordInput(
            attrs={
                'class': 'form-control',
                'placeholder': 'Digite sua senha',
            }
        ),
    )
# código omitido
    senha_2=forms.CharField(
        label='Confirme sua senha', 
        required=True, 
        max_length=70,
        widget=forms.PasswordInput(
            attrs={
                'class': 'form-control',
                'placeholder': 'Digite sua senha novamente',
            }
        ),
    )
# código omitido

cadastro.html

<section class="galeria" style="margin-left: 5em">
                <form action="" method="">
                    {% csrf_token %}
                    <div class="row">
                        {% for field in form.visible_fields %}
                        <div class="col-12 col-lg-12" style="margin-bottom: 10px;">
                            <label for="{{ field.id_for_label }}" style="color:#D9D9D9; margin-bottom: 5px;">{{field.label}}</label>
                            {{ field }}
                        </div>
                        {% endfor %}
                    </div>
                    <div>
                        <button class="btn btn-success col-12" style="padding: top 5px;" type="submit">Cadastrar</button>
                    </div>
                </form>
            </section>

urls.py

from django.urls import path
from usuarios.views import login, cadastro


urlpatterns = [
   path('login', login, name='login'),
   path('cadastro', cadastro, name='cadastro')

views.py

from django.shortcuts import render

from usuarios.forms import LoginForms, CadastroForms


def login(request):
     form = LoginForms()
     return render(request, 'usuarios/login.html', {'form': form})

def cadastro(request):
    form = CadastroForms()
    return render(request, 'usuarios/cadastro.html', {'form': form})

Obrigaddo!!!

Bom dia, Alan! Perdão pela demora em respondê-lo.

Analisei cada trecho de código que você compartilhou e de forma geral, nenhum apresenta algum problema que poderia gerar o erro em questão.

Com isso, gostaria que compartilhasse um print de como está os seus arquivos, principalmente o "forms.py", que deveria estar dentro da pasta "usuario", pois o erro informa que não conseguiu localizar o arquivo no caminho que foi especificado, e gostaria de analisar isso. E caso não seja incomodo, compartilhe todo o seu projeto também.

Bons estudos!

Fico no aguardo e à disposição

Olá Armano, boa noite!

Estou bem!

Imagina! não há o que perdoar.

Estimo que esteja tudo bem, contigo e a sua família.

Obrigado!

Nesse link estão um vídeo e com no moneto que do erro e o projeto:

https://drive.google.com/drive/folders/1RVqaHVMlwZQxXLOiwgannXGj9ZhA1VX-?usp=sharing

Por obséquio, se faltar algo pode me avisar.

Obrigado!!!

solução!

Bom dia, Alan! Como vai você e sua família?

Dei uma analisada geral no projeto que você compartilhou e consegui identificar o que estava ocasionando aquele erro, era a endentação da classe CadastroForms. Ela estava endentada um pouco mais a frente, fazendo com que ela estivesse dentro da classe LoginForms, um erro bobo que não consegui identificar de primeira. Então, fica de aprendizado para nos dois.

O código com a indentação correta, ficaria assim:

from django import forms

class LoginForms(forms.Form):
    nome_login = forms.CharField(
        label='Nome de Login', 
        required=True, 
        max_length=100,
        widget=forms.TextInput(
            attrs={
                'class':' form-control',
                'placeholder': 'EX.: João Silva'

            }
        )
    )
    senha = forms.CharField(
        label='Senha',
        required=True,
        max_length=70,
        widget=forms.PasswordInput(
            attrs={
                'class':' form-control',
                'placeholder': 'Digite sua senha'
            }
        )
    )

class CadastroForms(forms.Form):
    nome_cadastro = forms.CharField(
        label='Nome de Cadastro', 
        required=True, 
        max_length=100,
        widget=forms.TextInput(
            attrs={
                'class': 'form-control',
                'placeholder': 'Ex.: João Silva',
            }
        )
    )
    email=forms.EmailField(
        label='Email',
        required=True,
        max_length=100,
        widget=forms.EmailInput(
            attrs={
                'class': 'form-control',
                'placeholder': 'Ex.: joaosilva@xpto.com',
            }
        )
    )
# código omitido
    senha_1 = forms.CharField(
        label='Senha', 
        required=True, 
        max_length=70,
        widget=forms.PasswordInput(
            attrs={
                'class': 'form-control',
                'placeholder': 'Digite sua senha',
            }
        ),
    )
# código omitido
    senha_2=forms.CharField(
        label='Confirme sua senha', 
        required=True, 
        max_length=70,
        widget=forms.PasswordInput(
            attrs={
                'class': 'form-control',
                'placeholder': 'Digite sua senha novamente',
            }
        ),
    )
# código omitido

Grande abraço e bons estudos!

Olá Armano, boa noite!

Estamos bem!

python manage.py runserver funcionando perfeitamente.

Muito obrigado!!!

Forte abraço.