From bf23ff938af89840c6ab29d586c40e8c5e3008cc Mon Sep 17 00:00:00 2001 From: Jitka Halova Date: Thu, 2 Jul 2026 15:26:37 +0200 Subject: [PATCH] Fix RelatedField rendering wrong domain in hrefs (cherry picked from commit 816a6335427088a4883d60f98b20b7b353999f21) --- CHANGES/7835.bugfix | 1 + pulpcore/app/serializers/base.py | 10 ++++++++++ 2 files changed, 11 insertions(+) create mode 100644 CHANGES/7835.bugfix diff --git a/CHANGES/7835.bugfix b/CHANGES/7835.bugfix new file mode 100644 index 0000000000..cf4b9cb85b --- /dev/null +++ b/CHANGES/7835.bugfix @@ -0,0 +1 @@ +Fixed `RelatedField` rendering wrong domain in hrefs when `DOMAIN_ENABLED=True`. diff --git a/pulpcore/app/serializers/base.py b/pulpcore/app/serializers/base.py index b130449f26..759c48a581 100644 --- a/pulpcore/app/serializers/base.py +++ b/pulpcore/app/serializers/base.py @@ -67,6 +67,16 @@ def _patched_reverse(viewname, request=None, args=None, kwargs=None, **extra): class HrefPrnFieldMixin: """A mixin to configure related fields to generate relative hrefs and accept PRNs.""" + def use_pk_only_optimization(self): + """Disable DRF's PK-only optimization when domains are enabled. + + DRF's optimization passes a PKOnlyObject (no pulp_domain) to get_url, + causing _reverse to fall back to the default domain. + """ + if settings.DOMAIN_ENABLED: + return False + return super().use_pk_only_optimization() + def get_url(self, obj, view_name, request, *args, **kwargs): # Use the Pulp reverse method to display relative hrefs. self.reverse = _reverse(obj)