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']

2、user_operation/views.pyurl

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

说明:继承的类spa

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

 (3)配置urlrest

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

3、测试code

发送收藏请求router

查看收藏列表blog

重复收藏提示已经收藏继承

相关文章
相关标签/搜索