Fixed #1760 -- Unwound a subselect in an update for order_with_respect_to handling. Required for MySQL and doesn't hurt too much for other platforms. thanks, Christopher Lenz, James Turnbull and Simon Litchfield.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@6187 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
b7df720839
commit
595bf6b691
|
@ -241,10 +241,12 @@ class Model(object):
|
|||
placeholders = ['%s'] * len(field_names)
|
||||
if self._meta.order_with_respect_to:
|
||||
field_names.append(qn('_order'))
|
||||
# TODO: This assumes the database supports subqueries.
|
||||
placeholders.append('(SELECT COUNT(*) FROM %s WHERE %s = %%s)' % \
|
||||
(qn(self._meta.db_table), qn(self._meta.order_with_respect_to.column)))
|
||||
db_values.append(getattr(self, self._meta.order_with_respect_to.attname))
|
||||
placeholders.append('%s')
|
||||
subsel = 'SELECT COUNT(*) FROM %s WHERE %s = %%s' % (
|
||||
qn(self._meta.db_table),
|
||||
qn(self._meta.order_with_respect_to.column))
|
||||
cursor.execute(subsel, (getattr(self, self._meta.order_with_respect_to.attname),))
|
||||
db_values.append(cursor.fetchone()[0])
|
||||
if db_values:
|
||||
cursor.execute("INSERT INTO %s (%s) VALUES (%s)" % \
|
||||
(qn(self._meta.db_table), ','.join(field_names),
|
||||
|
|
Loading…
Reference in New Issue