Fixed #1181 -- get_in_bulk no longer fails on empty input. Also added unit tests. Thanks, akaihola
git-svn-id: http://code.djangoproject.com/svn/django/trunk@1834 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
7104000e52
commit
bbfc645337
1
AUTHORS
1
AUTHORS
|
@ -31,6 +31,7 @@ And here is an inevitably incomplete list of MUCH-APPRECIATED CONTRIBUTORS --
|
||||||
people who have submitted patches, reported bugs, added translations, helped
|
people who have submitted patches, reported bugs, added translations, helped
|
||||||
answer newbie questions, and generally made Django that much better:
|
answer newbie questions, and generally made Django that much better:
|
||||||
|
|
||||||
|
akaihola
|
||||||
Andreas
|
Andreas
|
||||||
David Ascher <http://ascher.ca/>
|
David Ascher <http://ascher.ca/>
|
||||||
James Bennett
|
James Bennett
|
||||||
|
|
|
@ -1649,7 +1649,7 @@ def function_get_sql_clause(opts, **kwargs):
|
||||||
return select, " FROM " + ",".join(tables) + (where and " WHERE " + " AND ".join(where) or "") + (order_by and " ORDER BY " + order_by or "") + limit_sql, params
|
return select, " FROM " + ",".join(tables) + (where and " WHERE " + " AND ".join(where) or "") + (order_by and " ORDER BY " + order_by or "") + limit_sql, params
|
||||||
|
|
||||||
def function_get_in_bulk(opts, klass, *args, **kwargs):
|
def function_get_in_bulk(opts, klass, *args, **kwargs):
|
||||||
id_list = args and args[0] or kwargs['id_list']
|
id_list = args and args[0] or kwargs.get('id_list', [])
|
||||||
assert id_list != [], "get_in_bulk() cannot be passed an empty list."
|
assert id_list != [], "get_in_bulk() cannot be passed an empty list."
|
||||||
kwargs['where'] = ["%s.%s IN (%s)" % (db.db.quote_name(opts.db_table), db.db.quote_name(opts.pk.column), ",".join(['%s'] * len(id_list)))]
|
kwargs['where'] = ["%s.%s IN (%s)" % (db.db.quote_name(opts.db_table), db.db.quote_name(opts.pk.column), ",".join(['%s'] * len(id_list)))]
|
||||||
kwargs['params'] = id_list
|
kwargs['params'] = id_list
|
||||||
|
|
|
@ -65,6 +65,10 @@ Article 4
|
||||||
{3: Article 3}
|
{3: Article 3}
|
||||||
>>> articles.get_in_bulk([1000])
|
>>> articles.get_in_bulk([1000])
|
||||||
{}
|
{}
|
||||||
|
>>> articles.get_in_bulk([])
|
||||||
|
Traceback (most recent call last):
|
||||||
|
...
|
||||||
|
AssertionError: get_in_bulk() cannot be passed an empty list.
|
||||||
|
|
||||||
# get_values() is just like get_list(), except it returns a list of
|
# get_values() is just like get_list(), except it returns a list of
|
||||||
# dictionaries instead of object instances -- and you can specify which fields
|
# dictionaries instead of object instances -- and you can specify which fields
|
||||||
|
|
Loading…
Reference in New Issue