From 77b4ecbd53635b94d3685d16af9e8b2f96cf952c Mon Sep 17 00:00:00 2001 From: Dmitry Shachnev Date: Sun, 16 Mar 2025 20:50:45 +0300 Subject: Fixed #36260 -- Made bulk_create() work with DB-generated primary keys. Co-authored-by: Simon Charette --- tests/bulk_create/models.py | 4 ++++ tests/bulk_create/tests.py | 7 +++++++ 2 files changed, 11 insertions(+) (limited to 'tests') diff --git a/tests/bulk_create/models.py b/tests/bulk_create/models.py index f0df9da66e..4b74b7ef56 100644 --- a/tests/bulk_create/models.py +++ b/tests/bulk_create/models.py @@ -147,3 +147,7 @@ class RelatedModel(models.Model): class DbDefaultModel(models.Model): name = models.CharField(max_length=10) created_at = models.DateTimeField(db_default=Now()) + + +class DbDefaultPrimaryKey(models.Model): + id = models.DateTimeField(primary_key=True, db_default=Now()) diff --git a/tests/bulk_create/tests.py b/tests/bulk_create/tests.py index 83ff8e4514..9bcf92e4cf 100644 --- a/tests/bulk_create/tests.py +++ b/tests/bulk_create/tests.py @@ -1,3 +1,4 @@ +from datetime import datetime from math import ceil from operator import attrgetter @@ -23,6 +24,7 @@ from .models import ( BigAutoFieldModel, Country, DbDefaultModel, + DbDefaultPrimaryKey, FieldsWithDbColumns, NoFields, NullableFields, @@ -866,3 +868,8 @@ class BulkCreateTests(TestCase): ctx[0]["sql"].count(created_at_quoted_name), 2 if connection.features.can_return_rows_from_bulk_insert else 1, ) + + @skipUnlessDBFeature("can_return_rows_from_bulk_insert") + def test_db_default_primary_key(self): + (obj,) = DbDefaultPrimaryKey.objects.bulk_create([DbDefaultPrimaryKey()]) + self.assertIsInstance(obj.id, datetime) -- cgit v1.3