程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何从 django 网站过滤草稿内容?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何从 django 网站过滤草稿内容??

开发过程中遇到如何从 django 网站过滤草稿内容?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何从 django 网站过滤草稿内容?的解决方法建议,希望对你解决如何从 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,请注明来意。