Skip to content

Commit e186dec

Browse files
committed
Fix get_view_url() for {% get_translated_url %} usage
1 parent 8c84ef7 commit e186dec

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

fluent_blogs/views/entries.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from django.views.generic.detail import DetailView, SingleObjectMixin
1515
from fluent_utils.softdeps.fluent_pages import CurrentPageMixin, mixed_reverse
1616
from parler.models import TranslatableModel, TranslationDoesNotExist
17+
from parler.utils.context import switch_language
1718
from parler.views import TranslatableSlugMixin
1819

1920
from fluent_blogs import appsettings
@@ -76,8 +77,16 @@ def get_view_url(self):
7677
view_url_name = self.view_url_name_paginated
7778
else:
7879
view_url_name = self.view_url_name
80+
81+
# Make sure the slug is replaced with a translated version of the current language.
82+
kwargs = self.kwargs
83+
if isinstance(self.object, TranslatableModel) and self.slug_url_kwarg in kwargs:
84+
kwargs = kwargs.copy()
85+
with switch_language(self.object, translation.get_language()):
86+
kwargs[self.slug_url_kwarg] = getattr(self.object, self.slug_field)
87+
7988
return mixed_reverse(
80-
view_url_name, args=self.args, kwargs=self.kwargs, current_page=self.get_current_page()
89+
view_url_name, args=self.args, kwargs=kwargs, current_page=self.get_current_page()
8190
)
8291

8392

0 commit comments

Comments
 (0)