Opened 15 years ago

Last modified 18 months ago

#10070 closed

Named parameters not working on raw sql queries with sqlite — at Initial Version

Reported by: Matias Surdi Owned by: nobody
Component: Database layer (models, ORM) Version: dev
Severity: Normal Keywords:
Cc: shai@…, mike@…, Joseph Gordon Triage Stage: Ready for checkin
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

The following code shows the problem when using sqlite:

$ python manage.py shell
Python 2.5.2 (r252:60911, Oct 5 2008, 19:29:17)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)

from django.db import connection
c = connection.cursor()
c.execute("select name from inventory_host where id=%(id)s",{'id':'1'})

Traceback (most recent call last):

File "<console>", line 1, in <module>
File "/usr/lib/python2.5/site-packages/django/db/backends/util.py", line 19, in execute

return self.cursor.execute(sql, params)

File "/usr/lib/python2.5/site-packages/django/db/backends/sqlite3/base.py", line 167, in execute

query = self.convert_query(query, len(params))

File "/usr/lib/python2.5/site-packages/django/db/backends/sqlite3/base.py", line 179, in convert_query

return query % tuple("?" * num_params)

TypeError: format requires a mapping

import django
django.VERSION

(1, 0, 2, 'final', 0)

$ sqlite3 --version
3.5.9

When using Mysql or Postgres, that works (not tested by me, but by others on django-users).

Change History (0)

Note: See TracTickets for help on using tickets.
Back to Top