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

Login redireciona para uma pagina inexistente

Ao logar esta direcionando para a pagina accounts/profile!! Como alterar a pagina de Login ? (esta ficando logado se eu vou pra "index" )

Request Method:    GET
Request URL:    http://localhost:8000/accounts/profile/
Using the URLconf defined in connectedin.urls, Django tried these URL patterns, in this order:
^admin/
^ ^$ [name='index']
^ ^perfis/(?P<perfil_id>\d+)$ [name='exibir']
^ ^perfis/(?P<perfil_id>\d+)/convidar$ [name='convidar']
^ ^convite/(?P<convite_id>\d+)/aceitar$ [name='aceitar']
^ ^registrar/$ [name='registrar']
^ ^login/$ [name='login']
^ ^logout/$ [name='logout']
The current URL, accounts/profile/, didn't match any of these.
You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page
16 respostas

Ola Ricardo !

Poderia postar seu urls.py e o settings.py do /connectedin ?

Abraço!

Segue abaixo...

#/connectedin/urls.py
from django.conf.urls import patterns, include, url
from django.contrib import admin

urlpatterns = patterns('',

    url(r'^admin/', include(admin.site.urls)),
    url(r'^', include('perfis.urls')),
    url(r'^', include('usuarios.urls'))

)
#/connectedin/settings.py

Django settings for connectedin project.

For more information on this file, see https://docs.djangoproject.com/en/1.7/topics/settings/

For the full list of settings and their values, see https://docs.djangoproject.com/en/1.7/ref/settings/


# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '_8sy#5n%%_t)#auqv9&z)bry&950^7n=shs)_giycqlwcc$+$0'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

TEMPLATE_DEBUG = True

ALLOWED_HOSTS = []


# Application definition

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'perfis',
    'usuarios'
)

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

ROOT_URLCONF = 'connectedin.urls'

WSGI_APPLICATION = 'connectedin.wsgi.application'


# Database
# https://docs.djangoproject.com/en/1.7/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

# Internationalization
# https://docs.djangoproject.com/en/1.7/topics/i18n/

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.7/howto/static-files/

STATIC_URL = '/static/'

LOGIN_URL="/login/"
LOGOUT_URL="/logout/"
LOGN_REDIRECT_URL="/"

Onde está o views.py e o urls.py de usuarios? Você quer um comportamento diferente do ensinado ou o que você aprendeu esta com problema? Não entendi.

Eu qeuria o comportamento do exercicio mesmo! No meu aparece /accounts/profile como o endereço redirecionado no Login

#/usuarios/urls.py
from django.conf.urls import patterns, include, url
from django.contrib import admin
from views import RegistrarUsuarioView


urlpatterns = patterns('',
    url(r'^registrar/$', RegistrarUsuarioView.as_view(), name = 'registrar'),
    url(r'^login/$', 'django.contrib.auth.views.login', { 'template_name': 'login.html'}, name='login'),
    url(r'^logout/$','django.contrib.auth.views.logout_then_login',{'login_url': '/login/'}, name='logout')
)
#/usuarios/views.py
from django.shortcuts import render, redirect
from django.views.generic.base import View
from usuarios.forms import RegistrarUsuarioForm
from django.contrib.auth.models import User
from perfis.models import Perfil

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

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

    def post(self, request, *args, **kwargs):
        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})

Você esta colando o código sem usar a formatação, fica complicado de ler.

Todo seu código tem que estar assim:

```
seu código aqui dentro

```

Eu editei seu post para ficar formatado correto.

Você alterou a aplicação, não existe a URL account. Você criou, certo? Então, é só seguir a lógica. Se antes ele direcionava para /, agora você aponta para onde quiser. Em que local? Em LOGN_REDIRECT_URL="/". Vi o que está lá? É para ai que você irá quando se logar.

Quando alterar sua aplicação, avise, fica mais fácil até para quem for ajudar. Aliás, o ideal é mudar qualquer coisa só no final quando você terminar a aplicação (mas acho que você chegou ao fim já.. então tá tudo certo).

Aguardo seu retorno.

Foi? :)

Não criei mas vou olhar alterando o urk do login pra outra direção

Eu não me lembro de cabeça se eu uso a URL accounts/profile/. Mas sem problema, então.. altere lá onde eu falei e veja se funciona. Deve funcionar sim.

Você esta usando qual versão do Django? 1.7 como peço no treinamento?

ACHEEEEEEEIIII

solução!

Tá escrito errado

LOGN_REDIRECT_URL="/"

:)

Por isso essa coisa de account que eu nunca havia visto, é default do Django que nunca uso! Ufa!

Achei agora tb!!!! To a meia hora aqui procurando... Valeu... E fica já pra quem quiser saber o Default do Django aponta para \accounts\profile Grande abraço

Abraço Ricardo! Sucesso e bom estudo!

Achei na documentação do Django

LOGIN_REDIRECT_URL¶

Default: '/accounts/profile/'

The URL where requests are redirected after login when the contrib.auth.login view gets no next parameter.

This is used by the login_required() decorator, for example.

This setting also accepts view function names and named URL patterns which can be used to reduce configuration duplication since you don’t have to define the URL in two places (settings and URLconf).