From 4235da2d3f5091be6c3c751b41f15acb1f5b4ddf Mon Sep 17 00:00:00 2001 From: Mathias de Riese Date: Sat, 30 Dec 2023 10:26:41 +0100 Subject: [PATCH] [#203] Add related_name to avoid conflicts when subclassing. (#228) * [#203] Add related_name to avoid conflicts when subclassing. * Add tests for invitation related_name and related_query_name --------- Co-authored-by: blag --- invitations/base_invitation.py | 2 ++ tests/basic/tests.py | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/invitations/base_invitation.py b/invitations/base_invitation.py index 3fe7cbb..ee998bc 100644 --- a/invitations/base_invitation.py +++ b/invitations/base_invitation.py @@ -15,6 +15,8 @@ class AbstractBaseInvitation(models.Model): null=True, blank=True, on_delete=models.CASCADE, + related_name="%(app_label)s_%(class)ss", + related_query_name="%(app_label)s_%(class)s", ) objects = BaseInvitationManager() diff --git a/tests/basic/tests.py b/tests/basic/tests.py index b0f3be6..16706fd 100644 --- a/tests/basic/tests.py +++ b/tests/basic/tests.py @@ -48,6 +48,19 @@ def test_invitation_key_expiry(self, invitation_a): ) assert invitation_a.key_expired() is False + def test_invitation_related_name(self, sent_invitation_by_user_a): + user = sent_invitation_by_user_a.inviter + assert user.invitations_invitations.all() + assert user.invitations_invitations.count() == 1 + + def test_invitation_related_query_name(self, sent_invitation_by_user_a): + assert ( + Invitation.objects.filter( + inviter__invitations_invitation__id=sent_invitation_by_user_a.pk + ).count() + == 1 + ) + class TestInvitationsAdapter: def test_fetch_adapter(self):