mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Fixed #35019 -- Fixed save() on models with both GeneratedFields and ForeignKeys.
Thanks Deb Kumar Das for the report.
Regression in f333e3513e.
This commit is contained in:
committed by
Mariusz Felisiak
parent
eeb2119985
commit
b287af5dc9
@@ -1,4 +1,5 @@
|
||||
import uuid
|
||||
from decimal import Decimal
|
||||
|
||||
from django.apps import apps
|
||||
from django.db import IntegrityError, connection
|
||||
@@ -15,6 +16,7 @@ from django.test import SimpleTestCase, TestCase, skipUnlessDBFeature
|
||||
from django.test.utils import isolate_apps
|
||||
|
||||
from .models import (
|
||||
Foo,
|
||||
GeneratedModel,
|
||||
GeneratedModelFieldWithConverters,
|
||||
GeneratedModelNull,
|
||||
@@ -187,6 +189,19 @@ class GeneratedFieldTestMixin:
|
||||
m.refresh_from_db()
|
||||
self.assertEqual(m.field, 8)
|
||||
|
||||
def test_save_model_with_foreign_key(self):
|
||||
fk_object = Foo.objects.create(a="abc", d=Decimal("12.34"))
|
||||
m = self.base_model(a=1, b=2, fk=fk_object)
|
||||
m.save()
|
||||
m = self._refresh_if_needed(m)
|
||||
self.assertEqual(m.field, 3)
|
||||
|
||||
def test_generated_fields_can_be_deferred(self):
|
||||
fk_object = Foo.objects.create(a="abc", d=Decimal("12.34"))
|
||||
m = self.base_model.objects.create(a=1, b=2, fk=fk_object)
|
||||
m = self.base_model.objects.defer("field").get(id=m.id)
|
||||
self.assertEqual(m.get_deferred_fields(), {"field"})
|
||||
|
||||
def test_update(self):
|
||||
m = self.base_model.objects.create(a=1, b=2)
|
||||
self.base_model.objects.update(b=3)
|
||||
|
||||
Reference in New Issue
Block a user