2011-01-26 45 views
8

No puedo iniciar sesión en el administrador de Django con ninguno de los superusuarios que he creado. Intenté crear nuevos superusuarios, cambiar contraseñas, etc. - no hay mensajes de error para ninguno de estos procesos, pero aún no puedo iniciar sesión.No puedo iniciar sesión en Django admin

No estoy seguro si está relacionado, pero tampoco puedo ejecutar django- comandos admin.py Esto es lo que he hecho hasta ahora:

$ django-admin.py validate 
Error: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined. 
$ export DJANGO_SETTINGS_MODULE=mysite.settings 
$ django-admin.py validate 
Error: Could not import settings 'mysite.settings' (Is it on sys.path? Does it have syntax errors?): No module named mysite.settings 

sys.path espectáculos [ '/ Usuarios/joerobinson/Sitios/django/mysite' ... (otras cosas en ruta)]

¿Hay ¿Hay algo más que deba hacer para registrar el módulo de mysite?

python manage.py runserver funciona bien.

Conclusión
Para la pregunta sobre cómo iniciar sesión en Django admin, yo no tenía django.contrib.auth.backends.ModelBackend incluido en mis AUTHENTICATION_BACKENDS - la adición de este me permitió entrar para administración.

Todavía estoy trabajando en la pregunta de configuración django-admin.py (que parece no estar relacionada) y la abriré en otra pregunta.

+0

usuarios deben ser miembros del personal para iniciar sesión en admin. set is_staff = True para esos usuarios. – Evgeny

+0

is_staff se estableció apropiadamente ... el mismo problema. – Joe

+0

'django-admin.py' no es para ejecutar comandos específicos del proyecto como' validate'. Use 'manage.py' para eso. –

Respuesta

7

Bueno, para responder a una de sus preguntas, la carpeta principal de mysite es lo que debe estar en la ruta de Python. Si agrega mysite a su ruta python, se expondrá el contenido de mysite, no el módulo mysite a python.

En cuanto al funcionamiento del runserver/las contraseñas no funcionan, no tengo ni idea. ¿Has personalizado algo con la autenticación?

¿Puede iniciar el shell e intentar autenticarse con su superusuario? http://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.authenticate

Dijiste en un comentario que "is_staff se configuró adecuadamente ... el mismo problema". - ¿Eso significa que usted pudo iniciar sesión con el primer superusuario para establecer is_staff?

+0

Gracias por indicarme el enlace, Yuji. Tengo un comportamiento muy extraño, de hecho: no puedo autenticar al usuario en el shell (authenticate() devuelve None). Si recupero el usuario administrador a través de la API (admin_user = User.objects.get (username = 'joe')), puedo verificar la contraseña con admin_user.check_password ('mypwd') y ver que tengo la contraseña correcta. ¿Alguna idea de por qué authenticate() no funcionaría si check_password() lo hace? Gracias por descubrir un poco más de este misterio. – Joe

+1

¡Eso es completamente loco! ¿Cuál es tu AUTHENTICATION_BACKENDS establecido en? El valor predeterminado 'ModelBackend' en' django.contrib.auth.backends' hace exactamente lo que usted hizo: 'user.check_password ('pwd')'. Ya sabes, podría poner temporalmente algún código de depuración en la función de autentificación de django para ver qué está haciendo mientras atraviesa los back-ends de autenticación. –

+3

Usted señor, acabo de alegrarme el día. Solo * sabía * que era una tontería de mi parte, no tenía el valor predeterminado en su lugar. ¡¡Gracias Gracias!! – Joe

5

Me encontré con un problema similar, pero no pude iniciar sesión en la interfaz de administración incluso después de eliminar la base de datos y crearla desde cero. El problema fue causado por un error realmente tonto.

No ejecute python manage.py testserver por accidente. Asegúrese de utilizar python manage.py runserver.

7

En mi caso, tenía "SESSION_COOKIE_SECURE = True" porque estaba intentando configuraciones SSL. Solo comentando esta línea funcionó.

+0

WOW este error ("función") es tan paralizante si está probando configuraciones de producción. Eso lo hizo. Gracias por la solución. Me tomó horas averiguar por qué no pude iniciar sesión en el administrador. – Ivandir