Extraño bug con Django/PyODB
Para loguear un usuario se puede hacer algo así:
[root@wally app]# python manage.py shell Python 2.3.4 (#1, May 2 2007, 19:26:00) [GCC 3.4.6 20060404 (Red Hat 3.4.6-8)] on linux2 Type "help", "copyright", "credits" or "license" for more information. (InteractiveConsole) >>> from pyodb import * >>> import django.contrib.auth >>> print django.contrib.auth.authenticate(username='user',password='pass') user
Y después se usa el objeto user para django.contrib.auth.login
Una parte de los datos de autenticación están disponibles en un Microsoft SQL Server, y los obtengo via pyodb. Y esto es lo que sucede cuando trato de autenticar el usuario (asumamos que user y pass son válidos, esto es el fragmento más pequeño que dispara el bug):
[root@wally app]# python manage.py shell Python 2.3.4 (#1, May 2 2007, 19:26:00) [GCC 3.4.6 20060404 (Red Hat 3.4.6-8)] on linux2 Type "help", "copyright", "credits" or "license" for more information. (InteractiveConsole) >>> from pyodb import Connect >>> import django.contrib.auth >>> c1=Connect("moodle_emisql",uid="gruposintramed",pwd="yev431") >>> print django.contrib.auth.authenticate(username='user',password='pass') None
Com pueden ver, lo del pyodb no debería interferir con lo de django. Importo solo una función y conecto con la BBDD, ni siquiera ejecuto nada de SQL, no uso ningún dato btenido de la conexión SQL. Pero las llamadas a authenticate fallan.
¿Como se supone que uno depura esto? Me las arreglé moviendo lo de PyODB a otro módulo pero es raro.