Added a class and path to redirect to original article.
parent
28bbef0ea5
commit
5484b89e3a
|
|
@ -1,6 +1,7 @@
|
|||
from django.urls import path
|
||||
|
||||
from .views import CategoryList, NewsItemDetail, NewsItemList, TagList
|
||||
from .views import (CategoryList, NewsItemDetail, NewsItemList,
|
||||
NewsItemRedirectView, TagList)
|
||||
|
||||
app_name = "news"
|
||||
|
||||
|
|
@ -11,4 +12,5 @@ urlpatterns = [
|
|||
path("tags/", TagList.as_view(), name="tags"),
|
||||
path("tags/<slug:tag>/", NewsItemList.as_view(), name="list_tag"),
|
||||
path("<slug:category>/<slug:slug>/", NewsItemDetail.as_view(), name="detail"),
|
||||
path("origin/<str:origin_text>/", NewsItemRedirectView.as_view(), name="origin"),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
from django.shortcuts import get_object_or_404
|
||||
from django.views.generic import DetailView, ListView
|
||||
from django.views.generic import DetailView, ListView, RedirectView
|
||||
|
||||
from .models import Category, NewsItem
|
||||
|
||||
|
|
@ -37,6 +37,14 @@ class NewsItemList(ListView):
|
|||
return context
|
||||
|
||||
|
||||
class NewsItemRedirectView(RedirectView):
|
||||
def get_redirect_url(self, *args, **kwargs):
|
||||
url = get_object_or_404(NewsItem, origin_text=kwargs["origin_text"])
|
||||
url.origin_times_followed += 1
|
||||
url.save()
|
||||
return url.origin_link
|
||||
|
||||
|
||||
class TagList(ListView):
|
||||
template_name = "news/tag_list.html"
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue