mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	Fixed #35690 -- Errored nicely when using in_bulk() with a values() or values_list() queryset.
This commit is contained in:
		| @@ -1101,6 +1101,8 @@ class QuerySet(AltersData): | ||||
|         """ | ||||
|         if self.query.is_sliced: | ||||
|             raise TypeError("Cannot use 'limit' or 'offset' with in_bulk().") | ||||
|         if not issubclass(self._iterable_class, ModelIterable): | ||||
|             raise TypeError("in_bulk() cannot be used with values() or values_list().") | ||||
|         opts = self.model._meta | ||||
|         unique_fields = [ | ||||
|             constraint.fields[0] | ||||
|   | ||||
| @@ -327,6 +327,13 @@ class LookupTests(TestCase): | ||||
|         with self.assertRaisesMessage(TypeError, msg): | ||||
|             Article.objects.all()[0:5].in_bulk([self.a1.id, self.a2.id]) | ||||
|  | ||||
|     def test_in_bulk_not_model_iterable(self): | ||||
|         msg = "in_bulk() cannot be used with values() or values_list()." | ||||
|         with self.assertRaisesMessage(TypeError, msg): | ||||
|             Author.objects.values().in_bulk() | ||||
|         with self.assertRaisesMessage(TypeError, msg): | ||||
|             Author.objects.values_list().in_bulk() | ||||
|  | ||||
|     def test_values(self): | ||||
|         # values() returns a list of dictionaries instead of object instances -- | ||||
|         # and you can specify which fields you want to retrieve. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user