Skip to content

Commit c19b28b

Browse files
committed
feat: Add optional slug to entity URL
1 parent 46418d2 commit c19b28b

3 files changed

Lines changed: 6 additions & 2 deletions

File tree

entities/models.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,10 @@ class Meta:
173173
ordering = ("name", "-id")
174174

175175
def get_absolute_url(self: Self) -> str:
176-
return reverse("entities:entities-detail", kwargs={"entity_type": self._meta.verbose_name, "pk": self.pk})
176+
return reverse(
177+
"entities:entities-detail-slug",
178+
kwargs={"entity_type": self._meta.verbose_name, "pk": self.pk, "slug": self.slug},
179+
)
177180

178181

179182
class Movie(EntityBase):

entities/templates/entities/partials/entity_item.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ <h3 class="text-xs font-bold line-clamp-2">{{ entity.name }}</h3>
6969
</div>
7070

7171
{# Clickable overlay #}
72-
<a href="{% url 'entities:entities-detail' entity|verbosename entity.id %}"
72+
<a href="{% url 'entities:entities-detail-slug' entity|verbosename entity.id entity.slug %}"
7373
class="absolute inset-0 z-10"
7474
aria-label="View {{ entity.name }}"></a>
7575
</div>

entities/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@
88
path("search/", EntitiesSearchView.as_view(), name="entities-search"),
99
path("<str:entity_type>/", EntitiesListView.as_view(), name="entities-list"),
1010
path("<str:entity_type>/<int:pk>/", EntitiesDetailView.as_view(), name="entities-detail"),
11+
path("<str:entity_type>/<int:pk>/<slug:slug>/", EntitiesDetailView.as_view(), name="entities-detail-slug"),
1112
]

0 commit comments

Comments
 (0)