• DRF用户收藏接口实现


    1)序列化

    user_operation/serializers.py

    from rest_framework import serializers
    from rest_framework.validators import UniqueTogetherValidator
    from .models import UserFav
    
    
    class UserFvaSerializers(serializers.ModelSerializer):
        """
        用户收藏
        """
        user = serializers.HiddenField(default=serializers.CurrentUserDefault())
        # validate实现唯一联合,一个商品只能收藏一次
        validators = [
            UniqueTogetherValidator(queryset=UserFav.objects.all(), fields=('user', 'goods'), message='已经收藏')
        ]
    
        class Meta:
            model = UserFav
            fields = ['user', 'goods', 'id']

    二、user_operation/views.py

    from rest_framework import viewsets, mixins
    from .serializers import UserFvaSerializers
    from .models import UserFav
    
    
    class UserFvaViewSet(viewsets.GenericViewSet, mixins.ListModelMixin, mixins.CreateModelMixin, mixins.DestroyModelMixin):
        """
        用户收藏
        """
        queryset = UserFav.objects.all()
        serializer_class = UserFvaSerializers

    说明:继承的类

    •  mixins.CreateModelMixin         添加收藏(相当于创建数据库)
    •  mixins.DestroyModelMixin       取消删除(相当于数据库删除)
    •  mixins.ListModelMixin             获取已收藏的商品列表

     (3)配置url

    router.register(r'userfavs', UserFavViewset, base_name="userfavs")

    三、测试

    发送收藏请求

    查看收藏列表

    重复收藏提示已经收藏

  • 相关阅读:
    问题排查帮助手册
    《操作系统真象还原》环境搭建
    crawlergo动态爬虫去除Spidername使用
    python实现排序算法
    深海 => 暴力扫描挖掘机
    WEB安全漏洞挖掘向入坑指北
    关于我 About Me
    代码审计系列题目CTFD部署(上)
    ARL资产导出对接Xray扫描
    Xray批量化自动扫描
  • 原文地址:https://www.cnblogs.com/mxsf/p/10681271.html
Copyright © 2020-2023  润新知