summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/db/models/query.py1
-rw-r--r--tests/basic/tests.py7
2 files changed, 8 insertions, 0 deletions
diff --git a/django/db/models/query.py b/django/db/models/query.py
index 0a577f8c2d..a2af672546 100644
--- a/django/db/models/query.py
+++ b/django/db/models/query.py
@@ -683,6 +683,7 @@ class QuerySet(AltersData):
obj = self.model(**kwargs)
self._for_write = True
obj.save(force_insert=True, using=self.db)
+ obj._state.fetch_mode = self._fetch_mode
return obj
create.alters_data = True
diff --git a/tests/basic/tests.py b/tests/basic/tests.py
index 89aef16aef..ed655833e2 100644
--- a/tests/basic/tests.py
+++ b/tests/basic/tests.py
@@ -290,6 +290,13 @@ class ModelTest(TestCase):
)
self.assertEqual(Article.objects.get(headline="Article 10"), a10)
+ def test_create_method_propagates_fetch_mode(self):
+ article = Article.objects.fetch_mode(models.FETCH_PEERS).create(
+ headline="Article 10",
+ pub_date=datetime(2005, 7, 31, 12, 30, 45),
+ )
+ self.assertEqual(article._state.fetch_mode, models.FETCH_PEERS)
+
def test_year_lookup_edge_case(self):
# Edge-case test: A year lookup should retrieve all objects in
# the given year, including Jan. 1 and Dec. 31.