mirror of
https://github.com/django/django.git
synced 2025-10-23 21:59:11 +00:00
Refs #34634 -- Fixed creating diamond-shaped MTI objects with ancestors inherited from different paths.
Co-authored-by: Simon Charette <charette.s@gmail.com>
This commit is contained in:
committed by
Mariusz Felisiak
parent
82a588a6bc
commit
1754c2c802
@@ -15,6 +15,7 @@ from .models import (
|
||||
GrandChild,
|
||||
GrandParent,
|
||||
ItalianRestaurant,
|
||||
ItalianRestaurantCommonParent,
|
||||
MixinModel,
|
||||
Parent,
|
||||
ParkingLot,
|
||||
@@ -158,6 +159,28 @@ class ModelInheritanceTests(TestCase):
|
||||
with self.assertNumQueries(4):
|
||||
common_child.save()
|
||||
|
||||
def test_create_diamond_mti_common_parent(self):
|
||||
with self.assertNumQueries(4):
|
||||
italian_restaurant_child = ItalianRestaurantCommonParent.objects.create(
|
||||
name="Ristorante Miron",
|
||||
address="1234 W. Ash",
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
italian_restaurant_child.italianrestaurant_ptr.place_ptr,
|
||||
italian_restaurant_child.place_ptr_two,
|
||||
)
|
||||
self.assertEqual(
|
||||
italian_restaurant_child.italianrestaurant_ptr.restaurant_ptr,
|
||||
italian_restaurant_child.restaurant_ptr,
|
||||
)
|
||||
self.assertEqual(
|
||||
italian_restaurant_child.restaurant_ptr.place_ptr,
|
||||
italian_restaurant_child.place_ptr_two,
|
||||
)
|
||||
self.assertEqual(italian_restaurant_child.name, "Ristorante Miron")
|
||||
self.assertEqual(italian_restaurant_child.address, "1234 W. Ash")
|
||||
|
||||
def test_update_parent_filtering(self):
|
||||
"""
|
||||
Updating a field of a model subclass doesn't issue an UPDATE
|
||||
|
||||
Reference in New Issue
Block a user