File tree Expand file tree Collapse file tree 1 file changed +10
-1
lines changed Expand file tree Collapse file tree 1 file changed +10
-1
lines changed Original file line number Diff line number Diff line change 1414from django .views .generic .detail import DetailView , SingleObjectMixin
1515from fluent_utils .softdeps .fluent_pages import CurrentPageMixin , mixed_reverse
1616from parler .models import TranslatableModel , TranslationDoesNotExist
17+ from parler .utils .context import switch_language
1718from parler .views import TranslatableSlugMixin
1819
1920from 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
You can’t perform that action at this time.
0 commit comments