From 308548f0dde38025b0aa6f9b4b3dc90b41ddbd42 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Tue, 11 Apr 2006 03:15:22 +0000 Subject: [PATCH] magic-removal: Fixed #1565 -- in_bulk() now returns empty dictionary if passed an empty list of IDs git-svn-id: http://code.djangoproject.com/svn/django/branches/magic-removal@2663 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/db/models/query.py | 3 ++- tests/modeltests/lookup/models.py | 4 +--- 2 files changed, 3 insertions(+), 4 deletions(-) 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): ...