diff options
| author | saJaeHyukc <wogur981208@gmail.com> | 2025-09-02 14:16:30 +0900 |
|---|---|---|
| committer | Sarah Boyce <42296566+sarahboyce@users.noreply.github.com> | 2025-09-23 16:45:23 +0200 |
| commit | e0f328d790539868252cea10cf40e620b9aecd31 (patch) | |
| tree | f266438c4cf16e8467d8e7bf9f24f388adb52a5d /tests/delete | |
| parent | fd94c90526d1709318ea21b9cd56c5ae5b54c443 (diff) | |
[6.0.x] Fixed #36264 -- Excluded proxy neighbors of parents from deletion collection when keep_parents=True.
Signed-off-by: saJaeHyukc <wogur981208@gmail.com>
Backport of 748551fea0b4e37231203a063356572a47e09efb from main.
Diffstat (limited to 'tests/delete')
| -rw-r--r-- | tests/delete/models.py | 7 | ||||
| -rw-r--r-- | tests/delete/tests.py | 9 |
2 files changed, 15 insertions, 1 deletions
diff --git a/tests/delete/models.py b/tests/delete/models.py index 4b627712bb..7f123b3396 100644 --- a/tests/delete/models.py +++ b/tests/delete/models.py @@ -32,6 +32,11 @@ class RChild(R): pass +class RProxy(R): + class Meta: + proxy = True + + class RChildChild(RChild): pass @@ -179,7 +184,7 @@ class RelToBase(models.Model): class Origin(models.Model): - pass + r_proxy = models.ForeignKey("RProxy", models.CASCADE, null=True) class Referrer(models.Model): diff --git a/tests/delete/tests.py b/tests/delete/tests.py index 7b9dcdb079..59140b5c62 100644 --- a/tests/delete/tests.py +++ b/tests/delete/tests.py @@ -34,6 +34,7 @@ from .models import ( RChild, RChildChild, Referrer, + RProxy, S, T, User, @@ -675,6 +676,14 @@ class DeletionTests(TestCase): ) signal.disconnect(receiver, sender=Referrer) + def test_keep_parents_does_not_delete_proxy_related(self): + r_child = RChild.objects.create() + r_proxy = RProxy.objects.get(pk=r_child.pk) + Origin.objects.create(r_proxy=r_proxy) + self.assertEqual(Origin.objects.count(), 1) + r_child.delete(keep_parents=True) + self.assertEqual(Origin.objects.count(), 1) + class FastDeleteTests(TestCase): def test_fast_delete_all(self): |
