I traced this with the debugger, and it's blowing up in
django/db/backends/mysql/base.py in this:
def last_executed_query(self, cursor, sql, params):
# With MySQLdb, cursor objects have an (undocumented) "_last_executed"
# attribute where the exact query sent to the database is saved.
# See MySQLdb/cursors.py in the source distribution.
return cursor._last_executed
Could this have something to do with the version of django and/or mysql?
I'm running django 1.5 and MySQL 5.5.19, and MySQLdb 1.2.3. I just
tried this and that does not exist on my system:
$ python
Python 2.6.7 (r267:88850, Jan 11 2012, 06:42:34)
[GCC 4.0.1 (Apple Inc. build 5490)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>> conn = MySQLdb.connect(host, user, passwd, db)
>>> cursor = conn.cursor()
>>> print cursor._last_executed
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'Cursor' object has no attribute '_last_executed'
>>> print cursor.__dict__
{'_result': None, 'description': None, 'rownumber': None, 'messages':
[], '_executed': None, 'errorhandler': <bound method
Connection.defaulterrorhandler of <_mysql.connection open to
'localhost' at 889810>>, 'rowcount': -1, 'connection': <weakproxy at
0x62f630 to Connection at 0x889810>, 'description_flags': None,
'arraysize': 1, '_info': None, 'lastrowid': None, '_warnings': 0}