validators可以自定义报错消息
from rest_framework import serializers
from rest_framework.validators import UniqueTogetherValidator
from .models import UserFav
class UserFavSerializer(serializers.ModelSerializer):
# 获取当前用户
user = serializers.HiddenField(
default=serializers.CurrentUserDefault()
)
class Meta:
model = UserFav
# 把user和goods作为联合索引
# 数据库如果重复, 抛出异常
# 由于UniqueTogetherValidator是对多字段操作, 所以自能写在Meta下, Meta上是对单字段操作的
validators = [
UniqueTogetherValidator(
queryset=UserFav.objects.all(),
fields=['user', 'goods'],
message="已经收藏"
)
]
fields = (
"user",
"goods",
# 因为我们添加了删除的功能, 所以一定要把商品的id返回回来
"id"
)