Added tests for QuerySet.update_or_create() with multi-table inheritance.

This commit is contained in:
sarahboyce 2022-09-19 10:44:40 +02:00 committed by Mariusz Felisiak
parent 67c34c1a37
commit ae3d575ec3
2 changed files with 14 additions and 0 deletions

View File

@ -50,6 +50,10 @@ class Author(models.Model):
name = models.CharField(max_length=100)
class Journalist(Author):
specialty = models.CharField(max_length=100)
class Book(models.Model):
name = models.CharField(max_length=100)
authors = models.ManyToManyField(Author, related_name="books")

View File

@ -12,6 +12,7 @@ from .models import (
Author,
Book,
DefaultPerson,
Journalist,
ManualPrimaryKeyTest,
Person,
Profile,
@ -503,6 +504,15 @@ class UpdateOrCreateTests(TestCase):
)
self.assertFalse(created)
def test_mti_update_non_local_concrete_fields(self):
journalist = Journalist.objects.create(name="Jane", specialty="Politics")
journalist, created = Journalist.objects.update_or_create(
pk=journalist.pk,
defaults={"name": "John"},
)
self.assertIs(created, False)
self.assertEqual(journalist.name, "John")
class UpdateOrCreateTestsWithManualPKs(TestCase):
def test_create_with_duplicate_primary_key(self):