【Django3.0功能开发】apps篇:filters数据过滤简单的搭建

内容介绍

API流式数据的处理搭建filters过滤处理。

业务实现

models.py

# 内容大类类别模型
class ArticleCategory(models.Model):
    category_name = models.CharField(max_length=20, verbose_name='文章类别名称', help_text="文章类别名称")
    
    class Meta:
        verbose_name = '文章类别管理'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.category_name


# 内容二级分类类别模型
class ArticleItem(models.Model):
    item_category = models.ForeignKey(
        ArticleCategory, on_delete=models.CASCADE, related_name='ArticleItemCategory',
        verbose_name="文章类别", help_text="文章类别"
    )
    item_name = models.CharField(max_length=20, verbose_name="栏目名称", help_text="栏目名称")


    class Meta:
        verbose_name = '文章栏目管理'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.item_name

views.py

# 内容大类类别视图
class ArticleCategoryViewSet(viewsets.ReadOnlyModelViewSet):
    queryset = ArticleCategory.objects.filter(status=1)  # 提取有效数据


# 内容二级分类类别视图
class ArticleItemViewSet(viewsets.ReadOnlyModelViewSet):
    queryset = ArticleItem.objects.filter(status=1)  # 提取有效数据
    filter_backends = (DjangoFilterBackend, filters.SearchFilter,)  # 使用分类过滤,和搜索过滤的方式
    filter_fields = ["item_category__category_name"] # 快速检索方式:http://xxxx/?{
    
    {search_fields}}=xxxxx

猜你喜欢

转载自blog.csdn.net/qq_20288327/article/details/112827581