summaryrefslogtreecommitdiff
path: root/tests/delete
diff options
context:
space:
mode:
authorsaJaeHyukc <wogur981208@gmail.com>2025-09-02 14:16:30 +0900
committerSarah Boyce <42296566+sarahboyce@users.noreply.github.com>2025-09-23 16:45:23 +0200
commite0f328d790539868252cea10cf40e620b9aecd31 (patch)
treef266438c4cf16e8467d8e7bf9f24f388adb52a5d /tests/delete
parentfd94c90526d1709318ea21b9cd56c5ae5b54c443 (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.py7
-rw-r--r--tests/delete/tests.py9
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):