大佬教程收集整理的这篇文章主要介绍了如何从 django 网站过滤草稿内容?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的 Django 网站上的文章有两个选项:“草稿”和“已发布” 我写了一些帮助我只显示管理页面中处于“已发布”状态的文章。 但是代码不起作用。当我点击每篇文章的指定类别时,甚至会显示草稿。我该如何解决? #################
#models.py
from django.db import models
from django.utils import timezone
# my managers
class ArticleManager(models.Manager):
def published(self):
return self.filter(status='Published')
# Create your models here.
class category(models.Model):
title = models.CharFIEld(max_length=300,verbose_name="category topic")
slug = models.SlugFIEld(max_length=100,unique=True,verbose_name="category Address")
status = models.BooleanFIEld(default=True,verbose_name="Do you want to show?")
position = models.IntegerFIEld(verbose_name="position")
class Meta:
verbose_name = "category"
verbose_name_plural = "CategorIEs"
ordering = ['position']
def __str__(self):
return self.title
class Article(models.Model):
STATUS_CHOICES = (
('Draft','Draft'),('Published','Published')
)
title = models.CharFIEld(max_length=300)
slug = models.SlugFIEld(max_length=100,unique=TruE)
category = models.ManyToManyFIEld(category,verbose_name="category",related_name="articles")
description = models.TextFIEld()
thumbnail = models.ImageFIEld(upload_to="images")
publish = models.datetiR_296_11845@eFIEld(default=timezone.Now)
created = models.datetiR_296_11845@eFIEld(auto_Now_add=TruE)
updated = models.datetiR_296_11845@eFIEld(auto_Now=TruE)
status = models.CharFIEld(max_length=10,choices=STATUS_CHOICES)
class Meta:
ordering = ['-publish']
def __str__(self):
return self.title
def category_published(self):
return self.category.filter(status=TruE)
objects = ArticleManager()
############
#VIEws.py
from django.shortcuts import render,get_object_or_404
from django.http import httpResponse,JsonResponse,http404
from .models import Article,category
# Create your vIEws here.
def home(request):
context = {
"articles": Article.objects.published()
}
return render(request,'website/home.HTML',context)
def detail(request,slug):
context = {
"article": get_object_or_404(Article.objects.published(),slug=slug)
}
return render(request,'website/detail.HTML',context)
def article(request):
context = {
"articles": Article.objects.filter(status="Published"),"category": category.objects.filter(status=TruE)
}
return render(request,'website/article.HTML',context)
def category(request,slug):
cat = get_object_or_404(category,slug=slug,status=TruE)
context = {
"category": cat.articles.all()
}
return render(request,'website/category.HTML',context)
###########
#category.HTML page
{% extends 'website/base.HTML' %}
{% load static %}
{% block main %}
<main ID="main">
<!-- ======= Breadcrumbs ======= -->
<section ID="breadcrumbs" class="breadcrumbs">
<div class="container">
<div class="d-flex justify-content-between align-items-center">
<h2>Blog</h2>
<ol>
<li><a href="home.HTML">Home</a></li>
<li>Blog</li>
</ol>
</div>
</div>
</section><!-- End Breadcrumbs -->
<!-- ======= Blog Section ======= -->
<section ID="blog" class="blog">
<div class="container">
<div class="row">
<div class="col-lg-8 entrIEs">
{% for article in category %}
<article class="entry" data-aos="fade-up">
<div class="entry-img">
<img src="{{ article.thumbnail.url }}" alt="" class="img-fluID">
</div>
<h2 class="entry-title">
{{ article.title }}
</h2>
<div class="entry-Meta">
<ul>
<li class="d-flex align-items-center"><i class="icoFont-user"></i>
<a href="detail.HTML">John Doe</a></li>
<li class="d-flex align-items-center"><i class="icoFont-wall-clock"></i>
<a href="detail.HTML"><time>{{ article.publish }}</time></a></li>
<li class="d-flex align-items-center"><i class="icoFont-Tags"></i>
<ul class="Tags">
{% for cat in article.category_published %}
<a href="{% url 'website:category' cat.slug %}">#{{ cat.title }}</a>
{% endfor %}
</ul>
</li>
<li class="d-flex align-items-center"><i class="icoFont-comment"></i>
<a href="detail.HTML">12 Comments</a></li>
</ul>
</div>
<div class="entry-content">
{{ article.description|truncatewords:30}}
<div class="read-more">
<a href="{% url 'website:detail' article.slug %}">Read More</a>
</div>
</div>
</article><!-- End blog entry -->
{% endfor %}
<div class="blog-pagination">
<ul class="justify-content-center">
<li class="Disabled"><i class="icoFont-rounded-left"></i></li>
<li><a href="#">1</a></li>
<li class="active"><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#"><i class="icoFont-rounded-right"></i></a></li>
</ul>
</div>
</div><!-- End blog entrIEs List -->
<div class="col-lg-4">
<div class="sIDebar" data-aos="fade-left">
<h3 class="sIDebar-title">Search</h3>
<div class="sIDebar-item search-form">
<form action="">
<input type="text">
<button type="submit"><i class="icoFont-search"></i></button>
</form>
</div><!-- End sIDebar search formn-->
{# <h3 class="sIDebar-title">CategorIEs</h3>#}
{# <div class="sIDebar-item categorIEs">#}
{# <ul>#}
{# {% for cat in category %}#}
{# <li class="active"><a href="{% url 'website:category' cat.slug %}">#{{ cat.title
}}</a></li>#}
{# {% endfor %}#}
{# </ul>#}
{##}
{# </div><!-- End sIDebar categorIEs-->#}
<h3 class="sIDebar-title">Recent posts</h3>
<div class="sIDebar-item recent-posts">
<div class="post-item clearfix">
<img src="assets/img/blog-recent-posts-1.jpg" alt="">
<h4><a href="detail.HTML">Nihil blanditIIS at in nihil autem</a></h4>
<time datetiR_296_11845@e="2020-01-01">Jan 1,2020</time>
</div>
<div class="post-item clearfix">
<img src="assets/img/blog-recent-posts-2.jpg" alt="">
<h4><a href="detail.HTML">QuIDem autem et impedit</a></h4>
<time datetiR_296_11845@e="2020-01-01">Jan 1,2020</time>
</div>
<div class="post-item clearfix">
<img src="assets/img/blog-recent-posts-3.jpg" alt="">
<h4><a href="detail.HTML">ID quia et et ut maxime similique occaecati ut</a></h4>
<time datetiR_296_11845@e="2020-01-01">Jan 1,2020</time>
</div>
<div class="post-item clearfix">
<img src="assets/img/blog-recent-posts-4.jpg" alt="">
<h4><a href="detail.HTML">Laborum corporis quo dara net para</a></h4>
<time datetiR_296_11845@e="2020-01-01">Jan 1,2020</time>
</div>
<div class="post-item clearfix">
<img src="assets/img/blog-recent-posts-5.jpg" alt="">
<h4><a href="detail.HTML">Et dolores corrupti quae illo quod dolor</a></h4>
<time datetiR_296_11845@e="2020-01-01">Jan 1,2020</time>
</div>
</div><!-- End sIDebar recent posts-->
<h3 class="sIDebar-title">Tags</h3>
<div class="sIDebar-item Tags">
<ul>
<li><a href="#">App</a></li>
<li><a href="#">IT</a></li>
<li><a href="#">Business</a></li>
<li><a href="#">Business</a></li>
<li><a href="#">Mac</a></li>
<li><a href="#">Design</a></li>
<li><a href="#">Office</a></li>
<li><a href="#">Creative</a></li>
<li><a href="#">studio</a></li>
<li><a href="#">smart</a></li>
<li><a href="#">Tips</a></li>
<li><a href="#">MarkeTing</a></li>
</ul>
</div><!-- End sIDebar Tags-->
</div><!-- End sIDebar -->
</div><!-- End blog sIDebar -->
</div>
</div>
</section><!-- End Blog Section -->
</main><!-- End #main -->
{% endblock %}
您的类别视图将返回所有文章,如果您只想在需要过滤的类别中发布文章。
def category(request,slug):
# filter only published articles
cat = get_object_or_404(Category,slug=slug,status=TruE)
context = {
"published_articles_in_category": cat.articles.filter(status='Published')
}
以上是大佬教程为你收集整理的如何从 django 网站过滤草稿内容?全部内容,希望文章能够帮你解决如何从 django 网站过滤草稿内容?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。