import qs from qs 安装_Djangofilter教程详解: 从安装使用到高阶美化分页大江狗精品...

又到开学季,小编我希望大家在新的学年继续努力,学有所成。Django-filter是小编我最喜欢的几个Django第三方安装包之一,在日常开发项目中经常用到,尤其当碰到用户需要对搜索结果中做进一步筛选的场景时。Django-filter允许用户根据自定义字段过滤从数据库查询得到的queryset,进一步筛选出用户想要的查询结果。这样做避免了对数据库的再次查询,大大提升了效率。小编我就今天带你看看如何安装和使用django-filter,并重点讲解如何美化django-filter并给其添加分页功能。该文值得收藏指数99,建议先加入微信收藏再阅读,以备后用。

实战内容

我们将开发一个文章搜索页面,用户可以根据标题关键词搜索文章得到文章列表。如果用户对显示搜索结果不满意,可以进一步根据文章的发表日期和文章类别对搜索结果进行进一步筛选。筛选结果以表格和分页显示。我们将借助django-filter实现。

本项目模型很简单(models.py内容如下所示),包含Article和Category两个模型,其中Article与Category是单对多的关系。模型还是基于之前大江狗实战案例Django实战专题: 开发专业博客(1)之内容管理后台开发。

#models.py

class Article(models.Model):"""文章模型"""    STATUS_CHOICES = (        ('d', '草稿'),        ('p', '发表'),        )    title = models.CharField('标题', max_length=200, db_index=True)    slug = models.SlugField('slug', max_length=60, blank=True)    body = models.TextField('正文')    pub_date = models.DateTimeField('发布时间', null=True)    status = models.CharField('文章状态', max_length=1, choices=STATUS_CHOICES, default='p')

category = models.ForeignKey('Category', verbose_name='分类',

        on_delete=models.CASCADE, blank=False, null=False)

def __str__(self):return self.titleclass Category(models.Model):"""文章分类"""    name = models.CharField('分类名', max_length=30, unique=True)

def __str__(self):

    return self.name

django-filter的安装

首先使用如下pip命令安装django-filter。

$ pip install django-filter

然后将 'django_filters' 加入INSTALLED_APPS.

INSTALLED_APPS = [...'django_filters',]

快速开始

使用django-filter有点类似使用django的forms类。我们先创建filters.py并添加如下代码。其作用是自定义一个ArticleFilter类,其中Meta选项指定通

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值