summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS1
-rw-r--r--django/core/meta/__init__.py2
-rw-r--r--tests/testapp/models/lookup.py4
3 files changed, 6 insertions, 1 deletions
diff --git a/AUTHORS b/AUTHORS
index 42f73a2d12..73fe3078c9 100644
--- a/AUTHORS
+++ b/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
answer newbie questions, and generally made Django that much better:
+ akaihola
Andreas
David Ascher <http://ascher.ca/>
James Bennett
diff --git a/django/core/meta/__init__.py b/django/core/meta/__init__.py
index 2b187d542e..dd048d4637 100644
--- a/django/core/meta/__init__.py
+++ b/django/core/meta/__init__.py
@@ -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
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."
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
diff --git a/tests/testapp/models/lookup.py b/tests/testapp/models/lookup.py
index f8445c4f60..2362bcbef9 100644
--- a/tests/testapp/models/lookup.py
+++ b/tests/testapp/models/lookup.py
@@ -65,6 +65,10 @@ Article 4
{3: Article 3}
>>> 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
# dictionaries instead of object instances -- and you can specify which fields