diff --git a/readthedocs/projects/views/public.py b/readthedocs/projects/views/public.py index 14d763e1fab..6a6d7d95ddd 100644 --- a/readthedocs/projects/views/public.py +++ b/readthedocs/projects/views/public.py @@ -49,7 +49,7 @@ def get_queryset(self): if self.kwargs.get('tag'): self.tag = get_object_or_404(Tag, slug=self.kwargs.get('tag')) - queryset = queryset.filter(tags__name__in=[self.tag.slug]) + queryset = queryset.filter(tags__slug__in=[self.tag.slug]) else: self.tag = None diff --git a/readthedocs/rtd_tests/tests/test_project_views.py b/readthedocs/rtd_tests/tests/test_project_views.py index a4ca3f02a87..0615bf4aed9 100644 --- a/readthedocs/rtd_tests/tests/test_project_views.py +++ b/readthedocs/rtd_tests/tests/test_project_views.py @@ -426,7 +426,7 @@ class TestBadges(TestCase): # To set `flat` as default style as done in code. def get_badge_path(self, version, style='flat'): - return static(self.BADGE_PATH % (version, style)) + return static(self.BADGE_PATH % (version, style)) def setUp(self): self.BADGE_PATH = 'projects/badges/%s-%s.svg' @@ -462,3 +462,11 @@ def test_social_passing_badge(self): res = self.client.get(self.badge_url, {'version': self.version.slug , 'style': 'social'}) static_badge = self.get_badge_path('passing', 'social') self.assertEquals(res.url, static_badge) + + +class TestTags(TestCase): + def test_project_filtering_work_with_tags_with_space_in_name(self): + pip = get(Project, slug='pip') + pip.tags.add('tag with space') + response = self.client.get('/projects/tags/tag-with-space/') + self.assertContains(response, '"/projects/pip/"')