diff --git a/AKDashboard/views.py b/AKDashboard/views.py
index 5f2f52826cb83575222ff52df67e7aba3eeb8a4b..88e3443e3f4c4378f52ff63b002186176d1fe546 100644
--- a/AKDashboard/views.py
+++ b/AKDashboard/views.py
@@ -48,8 +48,7 @@ class DashboardEventView(DetailView):
                         text = _('AK "%(ak)s" deleted.') % {'ak': s.name}
                         icon = ('times', 'fas')
 
-                    recent_changes.append({'icon': icon, 'text': text, 'link': reverse_lazy('submit:ak_detail', kwargs={
-                        'event_slug': context['event'].slug, 'pk': s.id}), 'timestamp': s.history_date})
+                    recent_changes.append({'icon': icon, 'text': text, 'link': s.instance.detail_url, 'timestamp': s.history_date})
 
             # Changes in plan
             if apps.is_installed("AKPlan"):
@@ -59,8 +58,7 @@ class DashboardEventView(DetailView):
                     for changed_slot in last_changed_slots:
                         recent_changes.append({'icon': ('clock', 'far'),
                                                'text': _('AK "%(ak)s" (re-)scheduled.') % {'ak': changed_slot.ak.name},
-                                               'link': reverse_lazy('submit:ak_detail', kwargs={
-                                                   'event_slug': context['event'].slug, 'pk': changed_slot.ak.id}),
+                                               'link': changed_slot.ak.detail_url,
                                                'timestamp': changed_slot.updated})
 
             # Sort by change date...
diff --git a/AKModel/admin.py b/AKModel/admin.py
index a6e6b79ee4f152c0c8db0630d03b1f652fefddca..ad8b76363b9dd4c6c38f6f832f0c1d23fcfcd730 100644
--- a/AKModel/admin.py
+++ b/AKModel/admin.py
@@ -308,7 +308,7 @@ class AKSlotAdmin(admin.ModelAdmin):
     @display(description=_('AK Details'))
     def ak_details_link(self, akslot):
         if apps.is_installed("AKSubmission") and akslot.ak is not None:
-            link = f"<a href={reverse('submit:ak_detail', args=[akslot.event.slug, akslot.ak.pk])}>{str(akslot.ak)}</a>"
+            link = f"<a href={{ akslot.detail_url }}>{str(akslot.ak)}</a>"
             return mark_safe(link)
         return "-"
 
diff --git a/AKModel/models.py b/AKModel/models.py
index 5cf5fac7331741b180a4bb0d784d9f6a04f4dc02..d37a7d02330a502408063e25c14100cfffcf7955 100644
--- a/AKModel/models.py
+++ b/AKModel/models.py
@@ -2,6 +2,7 @@ import itertools
 from datetime import timedelta
 
 from django.db import models
+from django.apps import apps
 from django.db.models import Count
 from django.urls import reverse_lazy
 from django.utils import timezone
@@ -326,6 +327,18 @@ class AK(models.Model):
     def availabilities(self):
         return "Availability".objects.filter(ak=self)
 
+    @property
+    def edit_url(self):
+        if apps.is_installed("AKSubmission"):
+            return reverse_lazy('submit:ak_edit', kwargs={'event_slug': self.event.slug, 'pk': self.id})
+        return reverse_lazy('admin:AKModel_ak_change', kwargs={'object_id': self.id})
+
+    @property
+    def detail_url(self):
+        if apps.is_installed("AKSubmission"):
+            return reverse_lazy('submit:ak_detail', kwargs={'event_slug': self.event.slug, 'pk': self.id})
+        return self.edit_url
+
 
 class Room(models.Model):
     """ A room describes where an AK can be held.
diff --git a/AKModel/templates/admin/AKModel/render_ak_messages.html b/AKModel/templates/admin/AKModel/render_ak_messages.html
index 9be788ec11aa2a39bfd3d916f53e5ffd28788a95..e62ccbb76c2daeba0b9a91b1d26b5953127b9249 100644
--- a/AKModel/templates/admin/AKModel/render_ak_messages.html
+++ b/AKModel/templates/admin/AKModel/render_ak_messages.html
@@ -4,7 +4,7 @@
         <span class="text-secondary float-end">
             {{ message.timestamp|date:"Y-m-d H:i:s" }}
         </span>
-        <h5><a href="{% url 'submit:ak_detail' event_slug=message.ak.event.slug pk=message.ak.pk %}">{{ message.ak }}</a></h5>
+        <h5><a href="{{ message.ak.detail_url }}">{{ message.ak }}</a></h5>
         <p>{{ message.text }}</p>
     </td></tr>
 {% endfor %}
diff --git a/AKModel/templates/admin/AKModel/requirements_overview.html b/AKModel/templates/admin/AKModel/requirements_overview.html
index b557a9c275cf6ba9c7db05f381cd3dbf04b105b7..11d9ace2a50d5c5fedd55c48c297096a6a2462f0 100644
--- a/AKModel/templates/admin/AKModel/requirements_overview.html
+++ b/AKModel/templates/admin/AKModel/requirements_overview.html
@@ -23,11 +23,11 @@
                                 <td>{{ ak }}</td>
                                 {% if "AKSubmission"|check_app_installed %}
                                     <td class="text-end">
-                                        <a href="{% url 'submit:ak_detail' event_slug=ak.event.slug pk=ak.pk %}" data-bs-toggle="tooltip"
+                                        <a href="{{ ak.detail_url }}" data-bs-toggle="tooltip"
                                            title="{% trans 'Details' %}"
                                            class="btn btn-primary">{% fa6_icon 'info' 'fas' %}</a>
                                         {% if event.active %}
-                                            <a href="{% url 'submit:ak_edit' event_slug=event.slug pk=ak.pk %}" data-bs-toggle="tooltip"
+                                            <a href="{{ ak.edit_url }}" data-bs-toggle="tooltip"
                                                title="{% trans 'Edit' %}"
                                                class="btn btn-success">{% fa6_icon 'pencil-alt' 'fas' %}</a>
                                         {% endif %}
diff --git a/AKPlan/templates/AKPlan/encode_events.html b/AKPlan/templates/AKPlan/encode_events.html
index 10db556de477a4641732f28fdd5bdc95ae50d210..d9614f48007f6e0d30d7958eef3b156a19c1b87c 100644
--- a/AKPlan/templates/AKPlan/encode_events.html
+++ b/AKPlan/templates/AKPlan/encode_events.html
@@ -12,7 +12,7 @@
                 'resourceId': '{{ slot.room.title }}',
                 'backgroundColor': '{{ slot|highlight_change_colors }}',
                 'borderColor': '{{ slot.ak.category.color }}',
-                'url': '{% url 'submit:ak_detail' event_slug=event.slug pk=slot.ak.pk %}'
+                'url': '{{ slot.ak.detail_url }}'
             },
         {% endif %}
     {% endfor %}
diff --git a/AKPlan/templates/AKPlan/plan_room.html b/AKPlan/templates/AKPlan/plan_room.html
index 430fd9b04246b984a4d9a8d42c6c2876cd16d1d5..c538e8b4ab5da2dc21b4ac38fbf2708e2cfde609 100644
--- a/AKPlan/templates/AKPlan/plan_room.html
+++ b/AKPlan/templates/AKPlan/plan_room.html
@@ -21,7 +21,7 @@
             {'title': '{{ slot.ak }}',
             'start': '{{ slot.start | timezone:event.timezone | date:"Y-m-d H:i:s" }}',
             'end': '{{ slot.end | timezone:event.timezone | date:"Y-m-d H:i:s" }}',
-            'url': '{% url 'submit:ak_detail' event_slug=event.slug pk=slot.ak.pk %}',
+            'url': '{{ slot.ak.detail_url }}',
             'borderColor': '{{ slot.ak.track.color }}',
             'color': '{{ slot.ak.category.color }}',
             },
diff --git a/AKPlan/templates/AKPlan/plan_track.html b/AKPlan/templates/AKPlan/plan_track.html
index 98e4307861ba9884f5579deb8be595f1a99e02cf..bc4cfdd6c02591f02e72efb21fd935c14c0c18e4 100644
--- a/AKPlan/templates/AKPlan/plan_track.html
+++ b/AKPlan/templates/AKPlan/plan_track.html
@@ -19,7 +19,7 @@
             {'title': '{{ slot.ak }} @ {{ slot.room }}',
             'start': '{{ slot.start | timezone:event.timezone | date:"Y-m-d H:i:s" }}',
             'end': '{{ slot.end | timezone:event.timezone | date:"Y-m-d H:i:s" }}',
-            'url': '{% url 'submit:ak_detail' event_slug=event.slug pk=slot.ak.pk %}',
+            'url': '{{ slot.ak.detail_url }}',
             'color': '{{ track.color }}',
             'borderColor': '{{ slot.ak.category.color }}',
             },
diff --git a/AKPlan/templates/AKPlan/slots_table.html b/AKPlan/templates/AKPlan/slots_table.html
index a9d0b7a611591871fc82dde35e6c18de11d21335..5401126e2424af668144821f92ac7ed1cdd1ae61 100644
--- a/AKPlan/templates/AKPlan/slots_table.html
+++ b/AKPlan/templates/AKPlan/slots_table.html
@@ -4,7 +4,7 @@
 <table class="table table-striped">
     {% for akslot in slots %}
     <tr>
-        <td class="breakWord"><b><a href="{% url 'submit:ak_detail' event_slug=event.slug pk=akslot.ak.pk %}">{{ akslot.ak.name }}</a></b></td>
+        <td class="breakWord"><b><a href="{{ akslot.ak.detail_url }}">{{ akslot.ak.name }}</a></b></td>
         <td>{{ akslot.start | time:"H:i" }} - {{ akslot.end | time:"H:i" }}</td>
         <td class="breakWord">{% if akslot.room and akslot.room.pk != '' %}
             <a href="{% url 'plan:plan_room' event_slug=event.slug pk=akslot.room.pk %}">{{ akslot.room }}</a>
diff --git a/AKScheduling/templates/admin/AKScheduling/special_attention.html b/AKScheduling/templates/admin/AKScheduling/special_attention.html
index f0cc5f58b28d8676d7e3556fd9a66aa5315a0fab..7591cdb5143751a7990f83decf555fb3673e4700 100644
--- a/AKScheduling/templates/admin/AKScheduling/special_attention.html
+++ b/AKScheduling/templates/admin/AKScheduling/special_attention.html
@@ -13,14 +13,14 @@
 {% block content %}
     <h4 class="mt-4 mb-4">{% trans "AKs with public notes" %}</h4>
     {% for ak in aks_with_comment %}
-        <a href="{% url "submit:ak_edit" event_slug=event.slug pk=ak.pk %}">{{ ak }}</a><br>{{ ak.notes }}<br><br>
+        <a href="{{ ak.edit_url }}">{{ ak }}</a><br>{{ ak.notes }}<br><br>
     {% empty %}
         -
     {% endfor %}
 
     <h4 class="mt-4 mb-4">{% trans "AKs without availabilities" %}</h4>
     {% for ak in aks_without_availabilities %}
-        <a href="{% url "submit:ak_edit" event_slug=event.slug pk=ak.pk %}">{{ ak }}</a><br>
+        <a href="{{ ak.edit_url }}">{{ ak }}</a><br>
     {% empty %}
         -<br>
     {% endfor %}
@@ -30,7 +30,7 @@
 
     <h4 class="mt-4 mb-4">{% trans "AK wishes with slots" %}</h4>
     {% for ak in ak_wishes_with_slots %}
-        <a href="{% url "submit:ak_detail" event_slug=event.slug pk=ak.pk %}">{{ ak }}</a> <a href="{% url "admin:AKModel_akslot_changelist" %}?ak={{ ak.pk }}">({{ ak.akslot__count }})</a><br>
+        <a href="{{ ak.detail_url }}">{{ ak }}</a> <a href="{% url "admin:AKModel_akslot_changelist" %}?ak={{ ak.pk }}">({{ ak.akslot__count }})</a><br>
     {% empty %}
         -<br>
     {% endfor %}
@@ -39,7 +39,7 @@
 
     <h4 class="mt-4 mb-4">{% trans "AKs without slots" %}</h4>
     {% for ak in aks_without_slots %}
-        <a href="{% url "submit:ak_detail" event_slug=event.slug pk=ak.pk %}">{{ ak }}</a><br>
+        <a href="{{ ak.detail_url }}">{{ ak }}</a><br>
     {% empty %}
         -<br>
     {% endfor %}
diff --git a/AKScheduling/templates/admin/AKScheduling/unscheduled.html b/AKScheduling/templates/admin/AKScheduling/unscheduled.html
index 18bbe051fc2ae18e2cf9e1383ab238c1762f240e..f78d435d28d22f53ad8e07d50b0dc3ca23da2cc6 100644
--- a/AKScheduling/templates/admin/AKScheduling/unscheduled.html
+++ b/AKScheduling/templates/admin/AKScheduling/unscheduled.html
@@ -17,7 +17,7 @@
         <li>
             {% with group.grouper as ak %}
                 {% if "AKSubmission"|check_app_installed %}
-                    <a href="{% url 'submit:ak_detail' event_slug=ak.event.slug pk=ak.pk %}">{{ ak }}</a>
+                    <a href="{{ ak.detail_url }}">{{ ak }}</a>
                 {% else %}
                     {{ ak }}
                 {% endif %}
diff --git a/AKSubmission/models.py b/AKSubmission/models.py
index cd8a855b735c823a304a3b78c68f28efd42dc9a9..ef1bff7a11e17e483fed79316c0cc03ed143a982 100644
--- a/AKSubmission/models.py
+++ b/AKSubmission/models.py
@@ -14,7 +14,7 @@ def orga_message_saved_handler(sender, instance: AKOrgaMessage, created, **kwarg
 
     if created and settings.SEND_MAILS:
         host = 'https://' + settings.ALLOWED_HOSTS[0] if len(settings.ALLOWED_HOSTS) > 0 else 'http://127.0.0.1:8000'
-        url = f"{host}{reverse_lazy('submit:ak_detail', kwargs={'pk': instance.ak.pk, 'event_slug': instance.ak.event.slug})}"
+        url = f"{host}{instance.ak.detail_url}"
 
         mail = EmailMessage(
             f"[AKPlanning] New message for AK '{instance.ak}' ({instance.ak.event})",
@@ -31,7 +31,7 @@ def slot_created_handler(sender, instance: AKSlot, created, **kwargs):
 
     if created and settings.SEND_MAILS and apps.is_installed("AKPlan") and not instance.event.plan_hidden and instance.room is None and instance.start is None:
         host = 'https://' + settings.ALLOWED_HOSTS[0] if len(settings.ALLOWED_HOSTS) > 0 else 'http://127.0.0.1:8000'
-        url = f"{host}{reverse_lazy('submit:ak_detail', kwargs={'pk': instance.ak.pk, 'event_slug': instance.ak.event.slug})}"
+        url = f"{host}{instance.ak.detail_url}"
 
         mail = EmailMessage(
             f"[AKPlanning] New slot for AK '{instance.ak}' ({instance.ak.event}) added",
diff --git a/AKSubmission/templates/AKSubmission/ak_detail.html b/AKSubmission/templates/AKSubmission/ak_detail.html
index eba22297893250349fdeed865637925fe9145400..41433189a7374ceee293d9ed25243c98f77ad061 100644
--- a/AKSubmission/templates/AKSubmission/ak_detail.html
+++ b/AKSubmission/templates/AKSubmission/ak_detail.html
@@ -120,7 +120,7 @@
             <a href="{% url 'submit:akmessage_add' event_slug=ak.event.slug pk=ak.pk %}" data-bs-toggle="tooltip"
                title="{% trans 'Add confidential message to organizers' %}"
                class="btn btn-warning">{% fa6_icon 'envelope' 'fas' %}</a>
-            <a href="{% url 'submit:ak_edit' event_slug=ak.event.slug pk=ak.pk %}" data-bs-toggle="tooltip"
+            <a href="{{ ak.edit_url }}" data-bs-toggle="tooltip"
                title="{% trans 'Edit' %}"
                class="btn btn-success">{% fa6_icon 'pencil-alt' 'fas' %}</a>
         {% endif %}
diff --git a/AKSubmission/templates/AKSubmission/ak_edit.html b/AKSubmission/templates/AKSubmission/ak_edit.html
index 72dff0d1d785f200691a1cc5ddd5292bb23e6fa7..4ef14eecb60aa776814f75d85ca95e32c8251fd8 100644
--- a/AKSubmission/templates/AKSubmission/ak_edit.html
+++ b/AKSubmission/templates/AKSubmission/ak_edit.html
@@ -12,7 +12,7 @@
     <li class="breadcrumb-item"><a
             href="{% url 'submit:submission_overview' event_slug=event.slug %}">{% trans "AK Submission" %}</a></li>
     <li class="breadcrumb-item"><a
-            href="{% url 'submit:ak_detail' event_slug=event.slug pk=ak.pk %}">{{ ak.short_name }}</a></li>
+            href="{{ ak.detail_url }}">{{ ak.short_name }}</a></li>
     <li class="breadcrumb-item active">{% trans "Edit" %}</li>
 {% endblock %}
 
diff --git a/AKSubmission/templates/AKSubmission/ak_history.html b/AKSubmission/templates/AKSubmission/ak_history.html
index bcc8963cf4afbc7afe96cddaa3f9e434e8a9902e..b530650693da2865ec7a323b830cbe6f636651da 100644
--- a/AKSubmission/templates/AKSubmission/ak_history.html
+++ b/AKSubmission/templates/AKSubmission/ak_history.html
@@ -15,7 +15,7 @@
     <li class="breadcrumb-item"><a
             href="{% url 'submit:submission_overview' event_slug=ak.event.slug %}">{% trans "AK Submission" %}</a></li>
     <li class="breadcrumb-item"><a
-            href='{% url 'submit:ak_detail' event_slug=ak.event.slug pk=ak.pk %}'>{{ ak.short_name }}</a></li>
+            href='{{ ak.detail_url }}'>{{ ak.short_name }}</a></li>
     <li class="breadcrumb-item active">{% trans 'History' %}</li>
 {% endblock %}
 
@@ -23,7 +23,7 @@
     {% include "messages.html" %}
 
     <div class="float-end">
-        <a href='{% url 'submit:ak_detail' event_slug=ak.event.slug pk=ak.pk %}' data-bs-toggle="tooltip"
+        <a href='{{ ak.detail_url }}' data-bs-toggle="tooltip"
            title="{% trans 'Back' %}"
            class="btn btn-info">{% fa6_icon 'arrow-circle-left' 'fas' %}</a>
     </div>
diff --git a/AKSubmission/templates/AKSubmission/ak_linked_list_inline.html b/AKSubmission/templates/AKSubmission/ak_linked_list_inline.html
index f5b504f7c07b8d008c32bd3cdab9911d1415b22b..dd7f7cce9b4f1127c26a5af1d5b9949844587157 100644
--- a/AKSubmission/templates/AKSubmission/ak_linked_list_inline.html
+++ b/AKSubmission/templates/AKSubmission/ak_linked_list_inline.html
@@ -2,7 +2,7 @@
     {% if forloop.counter0 > 0 %}
         ,&nbsp;
     {% endif %}
-    <a href="{% url 'submit:ak_detail' event_slug=slug pk=ak.pk %}">{{ ak }}</a>
+    <a href="{{ ak.detail_url }}">{{ ak }}</a>
 {% empty %}
     -
 {% endfor %}
diff --git a/AKSubmission/templates/AKSubmission/ak_table.html b/AKSubmission/templates/AKSubmission/ak_table.html
index d856a89674a4958ee83a498346bd0cd7ea94a1ac..775e95e003bd7d19a16b2954d9d6a193d1861a33 100644
--- a/AKSubmission/templates/AKSubmission/ak_table.html
+++ b/AKSubmission/templates/AKSubmission/ak_table.html
@@ -16,7 +16,7 @@
     {% for ak in AKs %}
         <tr>
             <td>
-                <a href="{% url 'submit:ak_detail' event_slug=ak.event.slug pk=ak.pk %}"
+                <a href="{{ ak.detail_url }}"
                       class="text-dark text-decoration-none font-weight-bold">
                     {{ ak.name }}
                 </a>
@@ -38,7 +38,7 @@
             </td>
             <td>{% category_linked_badge ak.category event.slug %}</td>
             <td class="text-end" style="white-space: nowrap;">
-                <a href="{% url 'submit:ak_detail' event_slug=ak.event.slug pk=ak.pk %}" data-bs-toggle="tooltip"
+                <a href="{{ ak.detail_url }}" data-bs-toggle="tooltip"
                    title="{% trans 'Details' %}"
                    class="btn btn-primary">{% fa6_icon 'info' 'fas' %}</a>
                 {% if ak.link %}
@@ -47,7 +47,7 @@
                        class="btn btn-info">{% fa6_icon 'external-link-alt' 'fas' %}</a>
                 {% endif %}
                 {% if event.active %}
-                    <a href="{% url 'submit:ak_edit' event_slug=event.slug pk=ak.pk %}" data-bs-toggle="tooltip"
+                    <a href="{{ ak.edit_url }}" data-bs-toggle="tooltip"
                        title="{% trans 'Edit' %}"
                        class="btn btn-success">{% fa6_icon 'pencil-alt' 'fas' %}</a>
                     {% if interest_indication_active %}
diff --git a/AKSubmission/templates/AKSubmission/akmessage_add.html b/AKSubmission/templates/AKSubmission/akmessage_add.html
index ea85b8c966b4576232acc993992e7d69473ea4c7..2dd17e0129ef701fe128f84951a291023dffdf6b 100644
--- a/AKSubmission/templates/AKSubmission/akmessage_add.html
+++ b/AKSubmission/templates/AKSubmission/akmessage_add.html
@@ -12,7 +12,7 @@
     <li class="breadcrumb-item"><a
             href="{% url 'submit:submission_overview' event_slug=event.slug %}">{% trans "AK Submission" %}</a></li>
     <li class="breadcrumb-item"><a
-            href="{% url 'submit:ak_detail' event_slug=event.slug pk=ak.pk %}">{{ ak.short_name }}</a></li>
+            href="{{ ak.detail_url }}">{{ ak.short_name }}</a></li>
     <li class="breadcrumb-item active">{% trans "Add confidential message to organizers" %}</li>
 {% endblock %}
 
@@ -31,7 +31,7 @@
             {% fa6_icon "undo-alt" 'fas' %} {% trans "Reset Form" %}
         </button>
 
-        <a href="{% url 'submit:ak_detail' event_slug=event.slug pk=ak.pk %}" class="btn btn-secondary">
+        <a href="{{ ak.detail_url }}" class="btn btn-secondary">
             {% fa6_icon "times" 'fas' %} {% trans "Cancel" %}
         </a>
     </form>
diff --git a/AKSubmission/templates/AKSubmission/akslot_add_update.html b/AKSubmission/templates/AKSubmission/akslot_add_update.html
index ac0d6d136c90dcb7d90ab37dcc39022389704724..c650b08444c1ef139e28b719ee17180a0f183fcf 100644
--- a/AKSubmission/templates/AKSubmission/akslot_add_update.html
+++ b/AKSubmission/templates/AKSubmission/akslot_add_update.html
@@ -11,7 +11,7 @@
     <li class="breadcrumb-item"><a
             href="{% url 'submit:submission_overview' event_slug=event.slug %}">{% trans "AK Submission" %}</a></li>
     <li class="breadcrumb-item"><a
-            href="{% url 'submit:ak_detail' event_slug=event.slug pk=ak.pk %}">{{ ak.short_name }}</a></li>
+            href="{{ ak.detail_url }}">{{ ak.short_name }}</a></li>
     <li class="breadcrumb-item active">{% trans "AK Duration(s)" %}</li>
 {% endblock %}
 
@@ -29,7 +29,7 @@
             {% fa6_icon "undo-alt" 'fas' %} {% trans "Reset Form" %}
         </button>
 
-        <a href="{% url 'submit:ak_detail' event_slug=event.slug pk=ak.pk %}" class="btn btn-secondary">
+        <a href="{{ ak.detail_url }}" class="btn btn-secondary">
             {% fa6_icon "times" 'fas' %} {% trans "Cancel" %}
         </a>
     </form>
diff --git a/AKSubmission/templates/AKSubmission/akslot_delete.html b/AKSubmission/templates/AKSubmission/akslot_delete.html
index 613d69a5d0e4bddebae1688857b1676efa560460..d2599872839849387d36a33d5c9f9d24959813b8 100644
--- a/AKSubmission/templates/AKSubmission/akslot_delete.html
+++ b/AKSubmission/templates/AKSubmission/akslot_delete.html
@@ -11,7 +11,7 @@
     <li class="breadcrumb-item"><a
             href="{% url 'submit:submission_overview' event_slug=event.slug %}">{% trans "AK Submission" %}</a></li>
     <li class="breadcrumb-item"><a
-            href="{% url 'submit:ak_detail' event_slug=event.slug pk=ak.pk %}">{{ ak.short_name }}</a></li>
+            href="{{ ak.detail_url }}">{{ ak.short_name }}</a></li>
     <li class="breadcrumb-item active">{% trans "AK Duration(s)" %}</li>
 {% endblock %}
 
@@ -41,7 +41,7 @@
             {% fa6_icon "check" 'fas' %} {% trans "Confirm" %}
         </button>
 
-        <a href="{% url 'submit:ak_detail' event_slug=event.slug pk=ak.pk %}" class="btn btn-secondary">
+        <a href="{{ ak.detail_url }}" class="btn btn-secondary">
             {% fa6_icon "times" 'fas' %} {% trans "Cancel" %}
         </a>
     </form>
diff --git a/AKSubmission/views.py b/AKSubmission/views.py
index 5f3f42b902fca36f0e89565c76badf00723270b6..1b865843f6b452c709924d3dd9765fdee554655d 100644
--- a/AKSubmission/views.py
+++ b/AKSubmission/views.py
@@ -199,7 +199,7 @@ class AKAndAKWishSubmissionView(EventSlugMixin, EventInactiveRedirectMixin, Crea
 
     def get_success_url(self):
         messages.add_message(self.request, messages.SUCCESS, _("AK successfully created"))
-        return reverse_lazy('submit:ak_detail', kwargs={'event_slug': self.kwargs['event_slug'], 'pk': self.object.pk})
+        return self.object.detail_url
 
     def form_valid(self, form):
         if not form.cleaned_data["event"].active:
@@ -249,7 +249,7 @@ class AKEditView(EventSlugMixin, EventInactiveRedirectMixin, UpdateView):
 
     def get_success_url(self):
         messages.add_message(self.request, messages.SUCCESS, _("AK successfully updated"))
-        return reverse_lazy('submit:ak_detail', kwargs={'event_slug': self.kwargs['event_slug'], 'pk': self.object.pk})
+        return self.object.detail_url
 
     def form_valid(self, form):
         if not form.cleaned_data["event"].active:
@@ -287,7 +287,7 @@ class AKOwnerCreateView(EventSlugMixin, EventInactiveRedirectMixin, CreateView):
             ak.owners.add(self.object)
             messages.add_message(self.request, messages.SUCCESS,
                                  _("Added '{owner}' as new owner of '{ak.name}'").format(owner=self.object, ak=ak))
-            return reverse_lazy('submit:ak_detail', kwargs={'event_slug': self.kwargs['event_slug'], 'pk': ak.pk})
+            return ak.detail_url
         return reverse_lazy('submit:submit_ak',
                             kwargs={'event_slug': self.kwargs['event_slug'], 'owner_slug': self.object.slug})
 
@@ -375,8 +375,7 @@ class AKSlotAddView(EventSlugMixin, EventInactiveRedirectMixin, CreateView):
 
     def get_success_url(self):
         messages.add_message(self.request, messages.SUCCESS, _("AK Slot successfully added"))
-        return reverse_lazy('submit:ak_detail',
-                            kwargs={'event_slug': self.kwargs['event_slug'], 'pk': self.object.ak.pk})
+        return self.object.ak.detail_url
 
 
 class AKSlotEditView(EventSlugMixin, EventInactiveRedirectMixin, UpdateView):
@@ -389,7 +388,7 @@ class AKSlotEditView(EventSlugMixin, EventInactiveRedirectMixin, UpdateView):
         if akslot.start is not None:
             messages.add_message(self.request, messages.WARNING,
                                  _("You cannot edit a slot that has already been scheduled"))
-            return redirect('submit:ak_detail', event_slug=self.kwargs['event_slug'], pk=akslot.ak.pk)
+            return HttpResponseRedirect(akslot.ak.detail_url)
         return super().get(request, *args, **kwargs)
 
     def get_context_data(self, *, object_list=None, **kwargs):
@@ -399,8 +398,7 @@ class AKSlotEditView(EventSlugMixin, EventInactiveRedirectMixin, UpdateView):
 
     def get_success_url(self):
         messages.add_message(self.request, messages.SUCCESS, _("AK Slot successfully updated"))
-        return reverse_lazy('submit:ak_detail',
-                            kwargs={'event_slug': self.kwargs['event_slug'], 'pk': self.object.ak.pk})
+        return self.object.ak.detail_url
 
 
 class AKSlotDeleteView(EventSlugMixin, EventInactiveRedirectMixin, DeleteView):
@@ -412,7 +410,7 @@ class AKSlotDeleteView(EventSlugMixin, EventInactiveRedirectMixin, DeleteView):
         if akslot.start is not None:
             messages.add_message(self.request, messages.WARNING,
                                  _("You cannot delete a slot that has already been scheduled"))
-            return redirect('submit:ak_detail', event_slug=self.kwargs['event_slug'], pk=akslot.ak.pk)
+            return HttpResponseRedirect(akslot.ak.detail_url)
         return super().get(request, *args, **kwargs)
 
     def get_context_data(self, *, object_list=None, **kwargs):
@@ -422,8 +420,7 @@ class AKSlotDeleteView(EventSlugMixin, EventInactiveRedirectMixin, DeleteView):
 
     def get_success_url(self):
         messages.add_message(self.request, messages.SUCCESS, _("AK Slot successfully deleted"))
-        return reverse_lazy('submit:ak_detail',
-                            kwargs={'event_slug': self.kwargs['event_slug'], 'pk': self.object.ak.pk})
+        return self.object.ak.detail_url
 
 
 class AKAddOrgaMessageView(EventSlugMixin, CreateView):
@@ -444,5 +441,4 @@ class AKAddOrgaMessageView(EventSlugMixin, CreateView):
 
     def get_success_url(self):
         messages.add_message(self.request, messages.SUCCESS, _("Message to organizers successfully saved"))
-        return reverse_lazy('submit:ak_detail',
-                            kwargs={'event_slug': self.kwargs['event_slug'], 'pk': self.object.ak.pk})
+        return self.object.ak.detail_url