diff --git a/news/urls.py b/news/urls.py index a023861..cbd01f0 100644 --- a/news/urls.py +++ b/news/urls.py @@ -1,12 +1,13 @@ from django.urls import path -from .views import (CategoryList, NewsItemDetail, NewsItemList, +from .views import (CategoryList, NewsItemCreate, NewsItemDetail, NewsItemList, NewsItemRedirectView, TagList) app_name = "news" urlpatterns = [ path("", NewsItemList.as_view(), name="list"), + path("add-news/", NewsItemCreate.as_view(), name="add_news"), path("categories/", CategoryList.as_view(), name="categories"), path("categories//", NewsItemList.as_view(), name="list_category"), path("tags/", TagList.as_view(), name="tags"), diff --git a/news/views.py b/news/views.py index 0e5f579..ce5886b 100644 --- a/news/views.py +++ b/news/views.py @@ -1,5 +1,7 @@ from django.shortcuts import get_object_or_404 -from django.views.generic import DetailView, ListView, RedirectView +from django.urls import reverse_lazy +from django.views.generic import (CreateView, DetailView, ListView, + RedirectView, UpdateView) from .models import Category, NewsItem @@ -8,6 +10,15 @@ class CategoryList(ListView): model = Category +class NewsItemCreate(CreateView): + model = NewsItem + success_url = reverse_lazy("dashboard:dashboard") + + def form_valid(self, form): + form.instance.owner = self.request.user + return super().form_valid(form) + + class NewsItemDetail(DetailView): model = NewsItem