diff --git a/django/db/models/query.py b/django/db/models/query.py index 9cc7659c69124..ab85bdc3488bc 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -386,7 +386,7 @@ def in_bulk(self, id_list): """ assert self.query.can_filter(), \ "Cannot use 'limit' or 'offset' with in_bulk" - assert isinstance(id_list, (tuple, list)), \ + assert isinstance(id_list, (tuple, list, set, frozenset)), \ "in_bulk() must be provided with a list of IDs." if not id_list: return {} diff --git a/tests/modeltests/lookup/models.py b/tests/modeltests/lookup/models.py index 94c16ff071d2f..e1973e84566e9 100644 --- a/tests/modeltests/lookup/models.py +++ b/tests/modeltests/lookup/models.py @@ -102,6 +102,12 @@ def __unicode__(self): >>> Article.objects.in_bulk([3]) {3: } +>>> Article.objects.in_bulk(set([3])) +{3: } +>>> Article.objects.in_bulk(frozenset([3])) +{3: } +>>> Article.objects.in_bulk((3,)) +{3: } >>> Article.objects.in_bulk([1000]) {} >>> Article.objects.in_bulk([])