zoukankan      html  css  js  c++  java
  • 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")

    三、测试

    发送收藏请求

    查看收藏列表

    重复收藏提示已经收藏

  • 相关阅读:
    [GL]行星运行1
    一个图的带权邻接表存储结构的应用
    [GDAL]3.影像金字塔构建
    [GDAL]1.GDAL1.8.1编译与第一个程序
    [GDAL]2.读取栅格和矢量数据
    C#迭代器
    GoogleEarth缓存机制探索
    AE开发三维的不足!
    [GDAL]4.影像的读取和显示
    [STL学习]1.概述
  • 原文地址:https://www.cnblogs.com/mxsf/p/10681271.html
Copyright © 2011-2022 走看看