【Django3.0使用技巧】apps篇:通用简洁的文章内容API配置serilaizes、filters

Django3.0中app的通用简洁的配置模板,这里以新闻CMS系统举例,根据自己的实际情况进行增减。

内容简介

API流式数据的处理搭建模板

编写应用中的文件实现数据流API

serilaizes.py

在models同级目录中创建serilaizes.py

serilaizes模板

这里通过控制fields内容API接口流可以展示的字段信息,内容定义的基本模板大致这样

class 自定义类名Serializer(serializers.ModelSerializer):
	# 如果原始数据字段存在主外键关系,需要将有ForeignKey的内容进行添加
	category = 关联外键类的Serializer() # 存在外键的class的Serializer
	class Meta:
		model = 自定义类名对应的模型 # models.py中的模型名称
		fields = "__all__" # 表示全部字段输出
		fields = ('col_name_1', 'col_name_2')  # 表示serice中的字段内容输出
		fields = ['col_name_1', 'col_name_2']  # 表示serice中的字段内容输出

serilaizes编写

from rest_framework import serializers
from .models import *
from users.serilaizes import *

# 一级分类
class ArticleCategorySerializer(serializers.ModelSerializer):
    class Meta:
        model = ArticleCategory
        fields = ["category_name"]

# 子栏目
class ArticleItemSerializer(serializers.ModelSerializer):
    item_category = ArticleCategorySerializer()

    class Meta:
        model = ArticleItem
        fields = ["item_category", "item_name"]

# Tag标签
class ArticleTagSerializer(serializers.ModelSerializer):
    class Meta:
        model = ArticleTag
        fields = ["tag_name", "tag_slug"]  # API接口中显示的字段内容

# 全部info
class ArticleInfoSerializer(serializers.ModelSerializer):
    # 外键相关对象
    article_item = ArticleItemSerializer()
    article_author = UserSerializer()
    article_tags = ArticleTagSerializer(many=True)

    class Meta:
        model = ArticleInfo
        fields = "__all__"

# 文章detail
class ArticleContentSerializer(serializers.ModelSerializer):
    class Meta:
        model = ArticleDetail
        fields = "__all__"

filters.py

暂时用不上未来再更新

猜你喜欢

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