diff --git a/news/models.py b/news/models.py index aea8d0a..907f43d 100644 --- a/news/models.py +++ b/news/models.py @@ -50,10 +50,10 @@ class NewsItem(models.Model): get_user_model(), on_delete=models.CASCADE, related_name="news_items" ) - def save(self): + def save(self, *args, **kwargs): if not self.slug: self.slug = slugify(self.title) - return super(NewsItem, self).save() + return super(NewsItem, self).save(*args, **kwargs) def get_absolute_url(self): return reverse_lazy("news:detail", args=[self.category.slug, self.slug]) diff --git a/news/templates/news/newsitem_form.html b/news/templates/news/newsitem_form.html new file mode 100644 index 0000000..a0e4e90 --- /dev/null +++ b/news/templates/news/newsitem_form.html @@ -0,0 +1,13 @@ +{% extends 'base.html' %} + +{% block content %} +
+

News Item

+
+ {% csrf_token %} + {{ form.as_p }} + + Cancel +
+
+{% endblock %} diff --git a/news/views.py b/news/views.py index ce5886b..aa8920f 100644 --- a/news/views.py +++ b/news/views.py @@ -1,5 +1,7 @@ +from django.contrib.auth.decorators import login_required from django.shortcuts import get_object_or_404 from django.urls import reverse_lazy +from django.utils.decorators import method_decorator from django.views.generic import (CreateView, DetailView, ListView, RedirectView, UpdateView) @@ -10,8 +12,20 @@ class CategoryList(ListView): model = Category +@method_decorator(login_required, name="dispatch") class NewsItemCreate(CreateView): model = NewsItem + fields = [ + "title", + "category", + "body", + "origin_text", + "origin_link", + "header_img", + "tags", + "is_published", + "is_featured", + ] success_url = reverse_lazy("dashboard:dashboard") def form_valid(self, form):