diff --git a/boards/models/tag.py b/boards/models/tag.py --- a/boards/models/tag.py +++ b/boards/models/tag.py @@ -52,7 +52,7 @@ class TagManager(models.Manager): return self.annotate(num_threads=Count('thread_tags'))\ .filter(num_threads__gt=0)\ - .filter(aliases__locale=DEFAULT_LOCALE)\ + .filter(aliases__in=TagAlias.objects.filter_localized())\ .order_by('aliases__name') def get_tag_url_list(self, tags: list) -> str: @@ -138,7 +138,7 @@ class Tag(models.Model, Viewable): return '{}_{}'.format(self.id, get_language()) @cached_result(key_method=_get_locale_cache_key) - def get_view(self): + def get_localized_name(self): locale = get_language() aliases = self.aliases.filter(Q(locale=locale) | Q(locale=DEFAULT_LOCALE)) @@ -152,7 +152,10 @@ class Tag(models.Model, Viewable): elif alias.locale == DEFAULT_LOCALE: default_tag_name = alias.name - name = localized_tag_name if localized_tag_name else default_tag_name + return localized_tag_name if localized_tag_name else default_tag_name + + def get_view(self): + name = self.get_localized_name() link = '{}'.format( self.get_absolute_url(), name) if self.is_required(): @@ -175,7 +178,7 @@ class Tag(models.Model, Viewable): return posts.order_by('?').first() def get_first_letter(self): - name = self.get_name() + name = self.get_localized_name() return name and name[0] or '' def get_related_tags(self):