from .models import Post
from django.core.paginator import Paginator, PageNotAnInteger,EmptyPage
from django.views.generic import ListView, DetailView
from django.db.models import Q
def IndexList(request):
a_list = Post.objects.filter(status=1).order_by('-created_on')
paginator = Paginator(a_list, 3)
page = request.GET.get('page')
try:
index_list = paginator.page(page)
except PageNotAnInteger:
index_list = paginator.page(1)
except EmptyPage:
index_list = paginator.page(paginator.num_pages)
return render(request, 'Home.html', {'a_list': a_list, 'page': page, 'index_list': index_list})
def NewsList(request):
b_list = Post.objects.filter(category=0, status=1).order_by('-created_on')
paginator = Paginator(b_list, 1)
page = request.GET.get('page')
try:
news_list = paginator.page(page)
except PageNotAnInteger:
news_list = paginator.page(1)
except EmptyPage:
news_list = paginator.page(paginator.num_pages)
return render(request, 'News.html', {'b_list': b_list, 'page': page, 'news_list': news_list})
def EntertainmentList(request):
c_list = Post.objects.filter(status=1, category=1).order_by('-created_on')
paginator = Paginator(c_list, 3)
page = request.GET.get('page')
try:
entertainment_list = paginator.page(page)
except PageNotAnInteger:
entertainment_list = paginator.page(1)
except EmptyPage:
entertainment_list = paginator.page(paginator.num_pages)
return render(request, 'Entertainment.html', {'c_list': c_list, 'page': page, 'entertainment_list': entertainment_list })
def SportsList(request):
d_list = Post.objects.filter(status=1, category=2).order_by('-created_on')
paginator = Paginator(d_list, 3)
page = request.GET.get('page')
try:
sport_list = paginator.page(page)
except PageNotAnInteger:
sport_list = paginator.page(1)
except EmptyPage:
sport_list = paginator.page(paginator.num_pages)
return render(request, 'Sports.html', {'d_list': d_list, 'page': page, 'sport_list': sport_list})
def World_NewsList(request):
e_list = Post.objects.filter(status=1, category=3).order_by('-created_on')
paginator = Paginator(e_list, 3)
page = request.GET.get('page')
try:
world_list = paginator.page(page)
except PageNotAnInteger:
world_list = paginator.page(1)
except EmptyPage:
world_list = paginator.page(paginator.num_pages)
return render(request, 'WorldNews.html', {'e_list': e_list, 'page': page, 'world_list': world_list})
class SearchResultsViews(ListView):
model = Post
template_name = 'Search.html'
def get_queryset(self):
query = self.request.GET.get('q')
object_list = Post.objects.filter(Q(title__icontains=query))
return object_list
def post_details_view(request, post):
f = get_object_or_404(Post, slug=post)
return render(request, 'post_details.html', {'f': f})
from django.db import models
from django.urls import reverse
# Create your models here.
STATUS = (
(0, "Draft"),
(1, "Publish")
)
CATEGORY = (
(0, "News"),
(1, "Entertainment"),
(2, "Sports"),
(3, "WorldNews"),
)
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
slug = models.SlugField(max_length=200, unique=True)
updated_on = models.DateTimeField(auto_now=True)
created_on = models.DateTimeField(auto_now_add=True)
status = models.IntegerField(choices=STATUS, default=0)
image = models.ImageField(upload_to='images/', blank=True)
image1 = models.ImageField(upload_to='images/', blank=True)
image2 = models.ImageField(upload_to='images/', blank=True)
category = models.IntegerField(choices=CATEGORY, default=0)
class Meta:
ordering = ['-created_on']
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('Olofofofo:post_details_view', args=[self.slug])
from django.urls import path
from . import views
from .views import SearchResultsViews
urlpatterns = [
path('', views.IndexList, name='index'),
path('news', views.NewsList, name='news'),
path('entertainment', views.EntertainmentList, name='entertainment'),
path('sports', views.SportsList, name='sports'),
path('world_news', views.World_NewsList, name='world_news'),
path('Search', SearchResultsViews.as_view(), name='search'),
path('<slug:post>/', views.post_details_view, name='post_details'),
]
{% extends 'base.html'%} {% block title%} Entertainment {%endblock%} {% block entertainment %}
{% for item in c_list %}
{% endfor %}
{% endfor %}
{% if entertainment_list.has_other_pages %} {% endif %} {% endblock %} Please family, help me out in solving my project.
How to use slug to get post details.
Here is all my files
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/f1d16888-0cd3-455d-93d7-31a08617a269o%40googlegroups.com.
No comments:
Post a Comment