Quijost
Webmaster => Programacion Web => Python => Mensaje iniciado por: marcostrfn en Diciembre 03, 2012, 11:07:24 am
-
Buenos dias:
Estoy entrando en el mundo de django y me encuentro con el siguiente problema:
Cuando intento acceder a /hola sin autenticarme me redirige a http://quijost.com/not-found/?redirect en vez de a la pagina de login
En el código tengo lo siguiente:
En la vista
from django.http import HttpResponse
from django.contrib.auth.decorators import login_required
@login_required
def hola(request):
''' codigo ....
En urls
from django.conf.urls import patterns, include, url
from views import hola
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'miapp.views.home', name='home'),
# url(r'^miapp/', include('miapp.foo.urls')),
# Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
url(r'^admin/', include(admin.site.urls)),
url(r'^accounts/login/$', 'django.contrib.auth.views.login'),
url(r'^accounts/logout/$', 'django.contrib.auth.views.logout'),
url(r'^hola/$', hola),
en la carpeta de templates he creado registration/login.html
¿Cual es el problema?
-
Probablemente se deba a que no estas definiendo en tu settings.py una pagina de error 404 o 503 o bien en el .htaccess y en caso de no haber definido ninguna se carga por defecto la página 404 de quijost.
Django estará lanzando alguna excepción de 404 o 503 y no encuentra el template o vista. Puedes ver más información en la documentación oficial de Django:
https://docs.djangoproject.com/en/1.3/topics/http/views/#the-404-page-not-found-view
-
Ya he dado con el error.
Por si le sirve a alguien login required dirige a la página de acounts/login pero toma como raíz la direccion del servidor y no la carpeta donde esta alojado el proyecto.
Hay qué forzarle a que vaya a la pagina correcta dandole el path si el proyecto no está en la raíz del servidor.