3
respostas

Aula 12 - Redirecionamento do Registrar.

Bom dia amigos, estou com o seguinte problema, implementei tudo e quando fui testar não deu muito certo um dos redirecionamentos. Ex: Cadastro o meu usuário sem o telefone e empresa para pegar o erro na tela e recebo a seguinte mensagem:

The view users.views.RegistrarUsuarioView didn't return an HttpResponse object. It returned None instead.

E quando eu passo todos os meus dados certinhos no registro, ele não redireciona corretamente para o index, ele vai para a pagina de login como se o usuário não tivesse sido logado. Eu acredito que o primeiro erro que está acontecendo de não devolver um httpresponse está causando este segundo.

Alguém com o mesmo problema pode me ajudar!

Obrigado!

3 respostas

Código? Sem código fica complicado ajudar.

Opa Flavio Desculpa

segue meu código

from django.shortcuts import redirect
from django.shortcuts import render
from django.contrib.auth.models import User
from django.views.generic.base import View
from profiles.models import Profile
from users.forms import RegistrarUsuarioForm

class RegistrarUsuarioView(View):

    template_name = 'registrar.html'

    def get(self, request, *args, **kwargs):
        return render(request, self.template_name)

    def post(self, request, *args, **kwargs):
        #preenche o from
        form = RegistrarUsuarioForm(request.POST)
        #verifica se eh valido
        if form.is_valid():
            dados_form = form.data
            #cria o usuario
            user = User.objects.create_user(dados_form['nome'], dados_form['email'], dados_form['senha'])            
            #cria o perfil
            profile = Profile(name=dados_form['nome'], 
                            email=dados_form['email'], 
                            phone=dados_form['telefone'],
                            name_company=dados_form['nome_empresa'],
                            user=user)
            #grava no banco
            profile.save()

            #redireciona para index
            return redirect('index')

        #so chega aqui se nao for valido
        #vamos devolver o form para mostrar o formulario preenchido 
        return render(request, self.template_name, {'form' : form})

Quando ele exibe o erro, ele mostra mais informações. Tem como colar todo aquele código que é exibido quando a mensagem de erro aparece e não apenas o resumo?

Abraço!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software