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

The view usuarios.views.cadastro didn't return an HttpResponse object. It returned None instead.

estou com 2 problemas, ao fazer o clean para validar se tem espaco no nome esta dando erro e a pagina nao carrega, baixei o projeto do curso e literalmente dei control c na funcao clean, esta identico e no projeto do curso funciona normalmente mas no meu nao, o que sera esta faltando Meu código:

class CadastroForms(forms.Form):
    nome_cadastro=forms.CharField(
        label="Nome de Login",
        required=True,
        max_length=100,
        widget=forms.TextInput(
            attrs={
                "class": "form-control",
                "placeholder": "Ex: Thiago Boiko"
            }
        )
    )
    email=forms.CharField(
        label="Email",
        required=True,
        max_length=100,
        widget=forms.TextInput(
            attrs={
                "class": "form-control",
                "placeholder": "Ex: thiago.boiko@boiko.com"
            }
        )
    )
    senha=forms.CharField(
        label="Senha",
        required=True,
        max_length=70,
        widget=forms.PasswordInput(
            attrs={
                "class": "form-control",
                "placeholder": "Digite a sua senha"
            }
        )
    )
    senha2=forms.CharField(
        label="Senha2",
        required=True,
        max_length=70,
        widget=forms.PasswordInput(
            attrs={
                "class": "form-control",
                "placeholder": "Confirme a sua senha"
            }
        )
    )

    def clean_nome_cadastro(self):
        nome = self.cleaned_data.get('nome_cadastro')

        if nome:
            nome = nome.strip()
            if ' ' in nome:
                raise forms.ValidationError('Espaços não são permitidos nesse campo')
            else:
                return nome

meu views.py

    def cadastro(request):
    if request.method == 'POST':
        form = CadastroForms(request.POST)

        if form.is_valid():
            if form['senha'].value() != form['senha2'].value():
                messages.error(request, 'As senhas precisam ser iguais.')
                return redirect('cadastro')

            nome = form['nome_cadastro'].value()
            email = form['email'].value()
            senha = form['senha'].value()

            if User.objects.filter(username = nome).exists() or User.objects.filter(email = email).exists():
                messages.error(request, 'Email ou usuário ja cadastrado.')
                return redirect('cadastro')

            usuario = User.objects.create_user(
                username = nome,
                email = email,
                password = senha
            )
            usuario.save()
            messages.success(request, f"Cadastro efetuado com sucesso!")
            return redirect('login')
    else:
        form = CadastroForms()
        return render(request, 'galeria/usuarios/cadastro.html', {"form": form})

esta cadastrando tudo normalmente porem quando boto espacos da o seguinte erro na pagina ValueError at /cadastro The view usuarios.views.cadastro didn't return an HttpResponse object. It returned None instead. Request Method: POST Request URL: http://localhost:8000/cadastro Django Version: 4.1 Exception Type: ValueError Exception Value:The view usuarios.views.cadastro didn't return an HttpResponse object. It returned None instead. Exception Location: C:\Users\USUARIO\Desktop\Python\alura_space-aula_5\venv\Lib\site-packages\django\core\handlers\base.py, line 332, in check_response Raised during: usuarios.views.cadastro Python Executable: C:\Users\USUARIO\Desktop\Python\alura_space-aula_5\venv\Scripts\python.exe Python Version: 3.11.1 Python Path:['C:\Users\USUARIO\Desktop\Python\alura_space-aula_5', 'C:\Users\USUARIO\AppData\Local\Programs\Python\Python311\python311.zip', 'C:\Users\USUARIO\AppData\Local\Programs\Python\Python311\DLLs', 'C:\Users\USUARIO\AppData\Local\Programs\Python\Python311\Lib', 'C:\Users\USUARIO\AppData\Local\Programs\Python\Python311', 'C:\Users\USUARIO\Desktop\Python\alura_space-aula_5\venv', 'C:\Users\USUARIO\Desktop\Python\alura_space-aula_5\venv\Lib\site-packages'] Server time: Wed, 25 Jan 2023 14:59:58 -0300

O segundo problema e que o botao da pagina principal em que o usuario e logado com sucesso nao esta funcionando o css dele , fiz a mesma coisa baixei o projeto do curso e esta literalmente identico o codigo porem no meu nao funciona código do botao:

        {% for message in messages %}
        <div class="alert alert-primary">
            <p id="messages">{{message}}</p>
        </div>
        {% endfor %}

o css esta carregando tudo certinho menos o botao, fica apenas aquele texto preto sem estilo nenhum

3 respostas

Para o primeiro problema, acredito que seja o else da sua view. Quando o formulário é inválido (nome com espaços), ele acaba não retornando nenhuma resposta. Nesse caso, seria bom criar um else para o if form.is_valid(): e redirecionar para a própria página.

Para o segundo problema, estava lidando com algo parecido. No meu caso, limpar o cache do navegador funcionou.

Para o primeiro problema fazer o else resolveu, porem achei estranho que no proprio curso esse else não é criado, e o projeto do curso tambem nao possui ele e esta funcionando normalmente na minha maquina. O segundo problema ja tinha tentado isso antes, quando faco isso o projeto simplesmente para de achar o css do site, e fica sem estilo nenhum apenas com as imagens e icones como na imagem abaixo para voltar a achar o css tive quer recriar o projeto do zero site

solução!

Resolvi o problema do css, um erro tao simples que por falta de atencao perdi facilmente mais de uma hora tentando descobrir o que era kkk no static que incluia o css o nome do arquivo era style.css , mas nos meus arquivos ele estava com nome de styles.css apenas arrumei o nome que agora esta funcionando normalmente.