diff --git a/newsbox_i18n/models.py b/newsbox_i18n/models.py index 43a2c80594de226e3d531d16e4f70cf7661fee43..4f393d0c4f0cf3b92853c74eee41b93f4194a8c0 100644 --- a/newsbox_i18n/models.py +++ b/newsbox_i18n/models.py @@ -38,7 +38,8 @@ class NewsboxI18NBase(six.with_metaclass(NewsboxI18NModelBase, TranslatableModel def __str__(self): return self.safe_translation_getter( 'newsbox_title', - _('News #%d') % self.pk) + _('News #%d') % self.pk, + any_language=True) def get_slug(self, language=None, *args, **kwargs): """ @@ -59,18 +60,17 @@ class NewsboxI18NBase(six.with_metaclass(NewsboxI18NModelBase, TranslatableModel if not language: language = current_language - if language in self.get_available_languages(): - activate(language) - url = reverse(self._newsbox_meta['detail_url_name'], args=( - self.newsbox_date.strftime("%Y"), - self.newsbox_date.strftime("%m"), - self.newsbox_date.strftime("%d"), - self.get_slug(language=language),)) - activate(current_language) - return url - - return "./" - + if language not in self.get_available_languages(): + language = (list(self.get_fallback_languages()) + list(self.get_available_languages()))[0] + + activate(language) + url = reverse(self._newsbox_meta['detail_url_name'], args=( + self.newsbox_date.strftime("%Y"), + self.newsbox_date.strftime("%m"), + self.newsbox_date.strftime("%d"), + self.get_slug(language=language),)) + activate(current_language) + return url class Meta: abstract = True