diff --git a/django/db/models/query.py b/django/db/models/query.py index 29d689eaab..bb0f31c18e 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -213,7 +213,8 @@ class QuerySet(object): "Cannot use 'limit' or 'offset' with in_bulk" assert isinstance(id_list, (tuple, list)), "in_bulk() must be provided with a list of IDs." id_list = list(id_list) - assert id_list != [], "in_bulk() cannot be passed an empty ID list." + if id_list == []: + return {} qs = self._clone() qs._where.append("%s.%s IN (%s)" % (backend.quote_name(self.model._meta.db_table), backend.quote_name(self.model._meta.pk.column), ",".join(['%s'] * len(id_list)))) qs._params.extend(id_list) diff --git a/tests/modeltests/lookup/models.py b/tests/modeltests/lookup/models.py index 811db5b466..605c05adbe 100644 --- a/tests/modeltests/lookup/models.py +++ b/tests/modeltests/lookup/models.py @@ -67,9 +67,7 @@ Article 4 >>> Article.objects.in_bulk([1000]) {} >>> Article.objects.in_bulk([]) -Traceback (most recent call last): - ... -AssertionError: in_bulk() cannot be passed an empty ID list. +{} >>> Article.objects.in_bulk('foo') Traceback (most recent call last): ...