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+unsubscr...@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.
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