Fixed #7298: prevent update() on sliced QuerySet since UPDATE doesn't reliably support LIMIT/OFFSET. Thanks, George Vilches.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7601 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
12716794db
commit
b5f92938ab
|
@ -292,6 +292,8 @@ class QuerySet(object):
|
||||||
Updates all elements in the current QuerySet, setting all the given
|
Updates all elements in the current QuerySet, setting all the given
|
||||||
fields to the appropriate values.
|
fields to the appropriate values.
|
||||||
"""
|
"""
|
||||||
|
assert self.query.can_filter(), \
|
||||||
|
"Cannot update a query once a slice has been taken."
|
||||||
query = self.query.clone(sql.UpdateQuery)
|
query = self.query.clone(sql.UpdateQuery)
|
||||||
query.add_update_values(kwargs)
|
query.add_update_values(kwargs)
|
||||||
query.execute_sql(None)
|
query.execute_sql(None)
|
||||||
|
@ -306,6 +308,8 @@ class QuerySet(object):
|
||||||
code (it requires too much poking around at model internals to be
|
code (it requires too much poking around at model internals to be
|
||||||
useful at that level).
|
useful at that level).
|
||||||
"""
|
"""
|
||||||
|
assert self.query.can_filter(), \
|
||||||
|
"Cannot update a query once a slice has been taken."
|
||||||
query = self.query.clone(sql.UpdateQuery)
|
query = self.query.clone(sql.UpdateQuery)
|
||||||
query.add_update_fields(values)
|
query.add_update_fields(values)
|
||||||
query.execute_sql(None)
|
query.execute_sql(None)
|
||||||
|
|
|
@ -63,5 +63,12 @@ a manager method.
|
||||||
>>> DataPoint.objects.values('value').distinct()
|
>>> DataPoint.objects.values('value').distinct()
|
||||||
[{'value': u'thing'}]
|
[{'value': u'thing'}]
|
||||||
|
|
||||||
|
We do not support update on already sliced query sets.
|
||||||
|
|
||||||
|
>>> DataPoint.objects.all()[:2].update(another_value='another thing')
|
||||||
|
Traceback (most recent call last):
|
||||||
|
...
|
||||||
|
AssertionError: Cannot update a query once a slice has been taken.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue