¿Cómo puedo iniciar sesión en el usuario programáticamente en Django? Tengo el nombre de usuario y la contraseña del usuario. ¿Hay algún método que nos permita registrarlo?¿Cómo puedo autenticar mediante programación a un usuario en Django?
21
A
Respuesta
27
No hay otra manera que "programáticamente". Por supuesto, esto es documented.
from django.contrib.auth import authenticate, login
user = authenticate(username = username, password = password)
if user is not None:
login(request, user)
5
alsways que tenga cuidado al registro de usuarios mediante programación en, puede obtener el error 'user has no attribute "backend"
. También debe configurar el back-end si eso no sucedió anteriormente. Project that uses this y un código de ejemplo:
def splash_register(request):
if request.session.get('beta'):
if request.method=='POST':
userform=MyUserCreationForm(request.POST)
if userform.is_valid():
#username of <30 char is required by Django User model. I'm storing username as a hash of user email
user=userform.save(commit=False)
user.username=hash(user.email)
user.backend='django.contrib.auth.backends.ModelBackend'
user.save()
username=user.username
password=str(userform.cleaned_data['password'])
auth.login(request, user)
request.session['first_visit']=True
return HttpResponseRedirect("/")
else:
userform=MyUserCreationForm(request.POST)
return render_to_response("website/splash_register.html", {'userform':userform}, context_instance=RequestContext(request))
return render_to_response("website/splash_register.html", context_instance=RequestContext(request))
else:
return HttpResponseRedirect('/splash/')
Cuestiones relacionadas
- 1. sincronizar mediante programación el PP en Django
- 2. Cómo autenticar a un usuario en el nivel medio mediante la autenticación de Windows
- 3. ¿Cómo suscribirse mediante programación a un usuario a un calendario de google usando javascript?
- 4. Cómo autenticar a un usuario en ActiveDirectory con powershell
- 5. Login un usuario mediante programación a través de JAAS
- 6. Carga de archivos mediante programación en Django
- 7. ¿Cómo crear o registrar un usuario usando django-tastypie API mediante programación?
- 8. Iniciar sesión en Django sin autenticar
- 9. Conexión a TFSPreview mediante programación
- 10. ¿Cómo autenticar al usuario en ONVIF?
- 11. ¿Puedo seleccionar texto mediante programación en UITextView?
- 12. ¿Cómo puedo restablecer un NSSearchField de cacao mediante programación?
- 13. cómo falsificar mediante programación un evento táctil a un UIButton?
- 14. ¿Cómo puedo generar PDF mediante programación utilizando LaTeX?
- 15. Cómo agregar controles mediante programación a un formulario en VB.NET
- 16. Autenticar por dirección IP en Django
- 17. ¿Cómo crear un acceso directo a la aplicación web en el escritorio del usuario mediante programación?
- 18. ¿Cómo puedo eliminar el silencio de un MP3 mediante programación?
- 19. ¿Cómo puedo realizar un reembolso mediante programación con PayPal?
- 20. Cómo llamar a un servicio web mediante programación en asp.net
- 21. Cómo agregar vistas a vistas mediante programación
- 22. mediante programación en C#
- 23. Mover un control de usuario desde un ContentControl a otro mediante programación
- 24. Agregar un nuevo usuario de subversión mediante programación con C#
- 25. Cómo reiniciar mediante programación?
- 26. ¿Cómo conectar mediante programación un cliente a un servicio WCF?
- 27. aumentar mediante programación un comando
- 28. Agregar botones mediante programación a un fragmento
- 29. ¿Obtiene el UID y el GID mediante programación mediante un nombre de usuario en Unix?
- 30. ¿Cómo agrego un archivo a una solución mediante programación?
Re tu comentario revisión: [PEP 8] (http://www.python.org/dev/peps/pep-0008/#other-recommendations) recomienda omitiendo espacios alrededor ' = 'en argumentos de palabra clave, pero por supuesto eres libre de hacer lo que quieras. – icktoofay
@icktoofay Estoy muy al tanto de lo que recomienda PEP 8. (No es una buena recomendación) –
@CatPlusPlus ¿De verdad crees que es una mala recomendación? Eso es extraño de ti. – jdg