diff --git a/django/website/tabbed_page/views.py b/django/website/tabbed_page/views.py
index ffb1e34649bcd0eebc4588c833ff0838f12451d2..b6ba7901d929042f9b57dcf9763e9f8334463c40 100644
--- a/django/website/tabbed_page/views.py
+++ b/django/website/tabbed_page/views.py
@@ -6,6 +6,7 @@ from .models import TabbedPage
 class TabbedPageView(TemplateView):
     template_name = "tabbed_page/tabbed_page.html"
     _page = None
+    _active_tab = None
 
     @property
     def tabs(self):
@@ -24,3 +25,18 @@ class TabbedPageView(TemplateView):
             self._page = TabbedPage.objects.get(name=name)
 
         return self._page
+
+    @property
+    def active_tab(self):
+        if self._active_tab is None:
+            candidates = []
+            tab_name = self.kwargs.get('tab_name')
+            if tab_name:
+                candidates = self.page.tabs.all().filter(name=tab_name)
+            if len(candidates) == 0:
+                candidates = self.page.tabs.all().filter(default=True)
+            if len(candidates) == 0:
+                candidates = self.page.tabs.all()
+            if len(candidates) > 0:
+                self._active_tab = candidates[0]
+        return self._active_tab