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 %}
{% endfor %}
{% endfor %}
{% if entertainment_list.has_other_pages %} {% endif %} {% endblock %}