Hello django-developers,

I'm running into some very strange behaviour when using MySQL as the DB. 
This is the first time i'm using MySQL for Django, other projects have 
been Postgres based.

Right after I log into the admin I get a strange error in 
django.models.core.get_decoded(), for some reason self.session_data 
contains an array instead of a string. The array is array('c', 
'KGRwMQpTJ19hdXRoX3VzZXJfaWQnCnAyCkkxCnMuMWM3YTZkMWI0OTRmMmM2Y2E0MmFlMGRjZjJk\nZjVjNTI=\n')

The error is

TypeError at /admin/
a2b_base64() argument 1 must be string or read-only character buffer, 
not array.array
Request Method:     POST
Request URL:     http://localhost:8080/admin/
Exception Type:     TypeError
Exception Value:     a2b_base64() argument 1 must be string or read-only 
character buffer, not array.array
Exception Location:     /usr/lib/python2.4/base64.py in decodestring, 
line 316

I've test this behaviour in the shell and for Postgres I get:

[EMAIL PROTECTED] myproject]# python manage.py shell
Python 2.3.4 (#1, Feb  2 2005, 12:11:53)
[GCC 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
 >>> from django.models.core import sessions
 >>> s = sessions.get_object(pk='7301a18de6eee75f89719dad6a7531b6')
 >>> s.session_data
*'KGRwMQpTJ19hdXRoX3VzZXJfaWQnCnAyCkkxCnMuMTMzODk2NWQzNTQ4NzYxN2I0NjMwNzY5NmI0\nODUzMTY=\n'*
 >>>

This is perfect...

But on MySQL i get the following:

[EMAIL PROTECTED] myproject]# python manage.py shell
Python 2.4.1 (#1, May 16 2005, 15:19:29)
[GCC 4.0.0 20050512 (Red Hat 4.0.0-5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
 >>> from django.models.core import sessions
 >>> s = sessions.get_object(pk='14cb08f0a4fa0a237ca9ba9a40a93dc1')
 >>> s.session_data
*array('c', 
'KGRwMQpTJ19hdXRoX3VzZXJfaWQnCnAyCkkxCnMuMWM3YTZkMWI0OTRmMmM2Y2E0MmFl
MGRjZjJk\nZjVjNTI=\n')*
 >>>

Which is bad, and base64.decodestring() trips over this because it is 
expecting a string.

If i edit the line in get_decoded() to:

*encoded_data = base64.decodestring(self.session_data.tostring())*

it works fine, but that sorta feels like a monkey patch and doesn't fix 
the problem behind this problem.

I'm looking into it as to why this is happening but I was wondering if 
other people are running into this problem too?
I am using Mysql 4.1.14 and django svn version.

Any help & suggestions appreciated.

Simon de Haan
Eight Media
http://www.eight.nl/




--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-developers
-~----------~----~----~----~------~----~------~--~---

Reply via email to