diff --git a/ormar/queryset/queryset.py b/ormar/queryset/queryset.py index b2aa5e7..f14ab65 100644 --- a/ormar/queryset/queryset.py +++ b/ormar/queryset/queryset.py @@ -1134,6 +1134,10 @@ class QuerySet(Generic[T]): :param objects: list of ormar models already initialized and ready to save. :type objects: List[Model] """ + + if not objects: + raise ModelListEmptyError("Bulk create objects are empty!") + ready_objects = [obj.prepare_model_to_save(obj.dict()) for obj in objects] # don't use execute_many, as in databases it's executed in a loop diff --git a/tests/test_queries/test_queryset_level_methods.py b/tests/test_queries/test_queryset_level_methods.py index a85cd56..e0f4f88 100644 --- a/tests/test_queries/test_queryset_level_methods.py +++ b/tests/test_queries/test_queryset_level_methods.py @@ -286,6 +286,9 @@ async def test_bulk_create(): completed = await ToDo.objects.filter(completed=True).all() assert len(completed) == 2 + with pytest.raises(ormar.exceptions.ModelListEmptyError): + await ToDo.objects.bulk_create([]) + @pytest.mark.asyncio async def test_bulk_create_json_field():