mirror of
https://github.com/django/django.git
synced 2025-07-24 05:36:15 +00:00
Further consolidated the model_inheritance tests.
This commit is contained in:
parent
3f76339355
commit
3f01e82c59
5 changed files with 27 additions and 68 deletions
|
@ -73,9 +73,14 @@ class ParkingLot4B(Place, ParkingLot4):
|
|||
pass
|
||||
|
||||
|
||||
@python_2_unicode_compatible
|
||||
class Supplier(models.Model):
|
||||
name = models.CharField(max_length=50)
|
||||
restaurant = models.ForeignKey(Restaurant)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
class Wholesaler(Supplier):
|
||||
retailer = models.ForeignKey(Supplier, related_name='wholesale_supplier')
|
||||
|
|
|
@ -466,3 +466,25 @@ class ModelInheritanceTest(TestCase):
|
|||
serves_pizza=True, serves_hot_dogs=True)
|
||||
p = Place.objects.all().select_related('restaurant')[0]
|
||||
self.assertIsInstance(p.restaurant.serves_pizza, bool)
|
||||
|
||||
def test_inheritance_select_related(self):
|
||||
# Regression test for #7246
|
||||
r1 = Restaurant.objects.create(
|
||||
name="Nobu", serves_hot_dogs=True, serves_pizza=False
|
||||
)
|
||||
r2 = Restaurant.objects.create(
|
||||
name="Craft", serves_hot_dogs=False, serves_pizza=True
|
||||
)
|
||||
Supplier.objects.create(name="John", restaurant=r1)
|
||||
Supplier.objects.create(name="Jane", restaurant=r2)
|
||||
|
||||
self.assertQuerysetEqual(
|
||||
Supplier.objects.order_by("name").select_related(), [
|
||||
"Jane",
|
||||
"John",
|
||||
],
|
||||
attrgetter("name")
|
||||
)
|
||||
|
||||
jane = Supplier.objects.order_by("name").select_related("restaurant")[0]
|
||||
self.assertEqual(jane.restaurant.name, "Craft")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue