Django-filter教程详解: 从安装使用到高阶美化分页-大江狗精品

本文详细介绍了如何使用Django-filter进行数据筛选,包括安装、使用和高级应用,如自定义筛选字段、美化过滤表单以及结合分页功能,通过实例展示了如何提升用户体验。
摘要由CSDN通过智能技术生成

又到开学季,小编我希望大家在新的学年继续努力,学有所成。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.title


class 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'
  • 6
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值