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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/f1d16888-0cd3-455d-93d7-31a08617a269o%40googlegroups.com.
from django.shortcuts import render, get_object_or_404
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 %}
...
{{ item.title}}

{{ item.content}}

Read more

{% endfor %}

{% if entertainment_list.has_other_pages %} {% endif %} {% endblock %}

Reply via email to