Django前后端分离开发-新闻管理系统(四)

项目源码下载:https://github.com/Cherish-sun/NEWS/tree/master

实现新闻标签、广告的web API

一、serializers.py 添加
# 按serializers来序列化新闻标签
class TagSerializer(serializers.ModelSerializer):
    # id = serializers.Field()
    name = serializers.CharField(required=True, max_length=100)
    slug = serializers.CharField(required=True, max_length=100)

    class Meta:
        model = Tag
        fields = ('id', 'name', 'slug')


# 广告
class AdSerializer(serializers.ModelSerializer):
    class Meta:
        model = Ad
        fields = "__all__"
二、views.py中设置新闻标签、广告的Viewset
class TagViewset(viewsets.ModelViewSet):
    """
    list:
       GET url: /tag/   标签列表数据
    create:
       POST url: /tag/  创建标签详情,返回新生成的标签对像
    retrieve:
       GET url: /tag/1/  获取标签详情,返回标签对像
    update:
       PUT url: /tag/1/  修改标签详情,返回标签对像
    delete:
       DELETE url: /tag/1/  删除标签详情,返回空对像
    """
    # 用于从此视图返回对象的查询器集。
    queryset = Tag.objects.all()

    # filter_backends = (DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter)
    # 查询
    # filter_class =
    # SearchFilter对应search_fields,对应模糊查询,也可用关连表的字段进行查询,但需要二个下划线连接,如categorys__title
    search_fields = ('name')
    # 用于验证和反序列化输入以及序列化输出的serializer类。通常,您必须设置此属性,或覆盖该    get_serializer_class()方法。
    serializer_class = TagSerializer
    # 应用于执行单个模型实例的对象查找的模型字段。默认为’pk’。
    lookup_field = "id"


class AdViewset(viewsets.ModelViewSet):
    """
    list:
       GET url: /ad/   广告列表数据
    create:
       POST url: /ad/  创建广告详情,返回新生成的广告对像
    retrieve:
       GET url: /ad/1/  获取广告详情,返回广告对像
    update:
       PUT url: /ad/1/  修改广告详情,返回广告对像
    delete:
       DELETE url: /ad/1/  删除广告详情,返回空对像
    """
    # 用于从此视图返回对象的查询器集。
    queryset = Ad.objects.all()

    # filter_backends = (DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter)
    # 查询
    # filter_class =
    # SearchFilter对应search_fields,对应模糊查询,也可用关连表的字段进行查询,但需要二个下划线连接,如categorys__title
    search_fields = ('title')
    # 用于验证和反序列化输入以及序列化输出的serializer类。通常,您必须设置此属性,或覆盖该get_serializer_class()方法。
    serializer_class = AdSerializer
    # 应用于执行单个模型实例的对象查找的模型字段。默认为’pk’。
    lookup_field = "id"
三、将两个类注册到urls.py里
router.register(r'tag', view.TagViewset, ba
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值