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

AttributeError: module 'django.contrib.auth.views' has no attribute 'login'

Quando vou rodar o projeto, aparece o seguinte erro no console:

  File ".../connectedin/usuarios/urls.py", line 7, in <module>
    path('login/', views.login, {'template_name': 'login.html'}, name='login'),
AttributeError: module 'django.contrib.auth.views' has no attribute 'login'

Meu 'usuarios/urls.py':

from django.urls import path
from usuarios.views import RegistrarUsuarioView
from django.contrib.auth import views

urlpatterns = [
    path('registrar/', RegistrarUsuarioView.as_view(), name="registrar"),
    path('login/', views.login, {'template_name': 'login.html'}, name='login'),
    path('logout/', views.logout_then_login, {'login_url': '/login/'}, name='logout')
]

No código acima, quando pressiono ctrl em cima do "logout_then_login", ele me redireciona para um "auth/views.py". Porém, quando pressiono ctrl em cima do "login", aparece: "Cannot find reference 'login' in 'views.py' "

Meu 'usuarios.views.py':

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 perfis.models import Perfil
from usuarios.forms import RegistrarUsuarioForm


class RegistrarUsuarioView(View):
    template_name = 'registrar.html'

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

    def post(self, request):
        form = RegistrarUsuarioForm(request.POST)

        if form.is_valid():
            dados_form = form.data

            usuario = User.objects.create_user(dados_form['nome'],
                                               dados_form['email'], dados_form['senha'])

            perfil = Perfil(nome=dados_form['nome'],
                            email=dados_form['email'],
                            telefone=dados_form['telefone'],
                            nome_empresa=dados_form['nome_empresa'],
                            usuario=usuario)

            perfil.save()

            return redirect('index')

        return render(request, self.template_name, {'form': form})

Se alguém puder me ajudar encontrar uma solução, fazendo favor! Obs: Estou usando o Python 3.6.6 e o django 2.1.2

1 resposta
solução!

Tenta usar a urlpatterns nesse padrão

from django.contrib.auth import views as auth_views

urlpatterns = [
   url( r'^login/$',auth_views.LoginView.as_view(template_name="useraccounts/login.html"), name="login"),
]

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