Website/blog/views.py

69 lines
1.9 KiB
Python

from django.db.models import QuerySet
from django.shortcuts import render
from django.contrib.auth.mixins import *
from django.views.generic import *
from .models import *
from django.contrib.admin.views.decorators import staff_member_required
from django.utils.decorators import method_decorator
# Create your views here.
def news(request):
allow_empty = True
queryset = None
model = Blog
paginate_by = None
paginate_orphans = 0
context_object_name = 'posts'
# paginator_class = Paginator
# page_kwarg = "page"
ordering = ['-date_posted']
if queryset is not None:
queryset = queryset
if isinstance(queryset, QuerySet):
queryset = queryset.all()
elif model is not None:
queryset = model._default_manager.all()
else:
raise ImproperlyConfigured(
"%(cls)s is missing a QuerySet. Define "
"%(cls)s.model, %(cls)s.queryset, or override "
"%(cls)s.get_queryset()." % {"cls": self.__class__.__name__}
)
if ordering:
if isinstance(ordering, str):
ordering = (ordering,)
queryset = queryset.order_by(*ordering)
return render(request, 'blog/home.html', {context_object_name: queryset, 'topics': ['No Updates...']})
class BlogDetailView(DetailView):
model = Blog
template_name = 'blog/blogDetail.html'
@method_decorator(staff_member_required, name='dispatch')
class BlogCreateView(LoginRequiredMixin, CreateView):
model = Blog
template_name = 'blog/blogCreate.html'
fields = ['title', 'content']
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)
def dev(request):
return render(request, 'dev.html', {'title': 'Development'})
def support(request):
return render(request, 'support.html', {'title': 'Support Us'})
def home(request):
return render(request, 'index.html', {'title': 'Home'})