diff --git a/core/urls.py b/core/urls.py index 9668e9f..3b938e4 100644 --- a/core/urls.py +++ b/core/urls.py @@ -24,6 +24,7 @@ urlpatterns = [ path('link//', LinkDetailView.as_view(), name='link_detail'), path('link//edit/', LinkUpdateView.as_view(), name='link_update'), path('custom//', CustomLinkView.as_view(), name='custom_link'), + path('custom//edit/', LinkUpdateView.as_view(), name='custom_link_update'), # Include main app URLs with locale path('', include('links.urls')), diff --git a/data/db.sqlite3 b/data/db.sqlite3 index 1dca30b..0152086 100644 Binary files a/data/db.sqlite3 and b/data/db.sqlite3 differ diff --git a/links/views.py b/links/views.py index 3e3d100..3d42b7e 100644 --- a/links/views.py +++ b/links/views.py @@ -133,6 +133,22 @@ class LinkUpdateView(UpdateView): form_class = LinkForm template_name = 'links/link_form.html' + def get_object(self, queryset=None): + # Handle both pk (for regular links) and alias (for custom links) + pk = self.kwargs.get('pk') + alias = self.kwargs.get('alias') + + if pk: + # Regular link lookup by pk + return get_object_or_404(Link, pk=pk) + elif alias: + # Custom link lookup by alias + alias = alias.lower() + return get_object_or_404(Link, alias=alias, link_type=Link.LinkType.CUSTOM) + else: + # Fallback to default behavior + return super().get_object(queryset) + def get_initial(self): initial = super().get_initial() self.original_url = self.object.original_url