问题描述
我要检查从前端到价格表的计算值是否正确。
例如;通过给出“销售价格”来增加此折扣,提前预订折扣将减少为CostPrice。 CostPRice和SalesPrice之间的差给出了profiRate。 webFakePrice是通过计算在网络上假的价格的salesPrice * webFakePriceRate来计算的。我想检查这些FrontEnd是否正确计算。我找不到它的关键字。既然一个记录中有多个记录,该如何循环?
Model.py
salesPrice = models.FloatField (blank = True,null = True)
costPrice = models.FloatField (blank = True,null = True)
commissionRate = models.FloatField (blank = True,null = True)
discountRate = models.FloatField (blank = True,null = True)
earlyBookingRate = models.FloatField (blank = True,null = True)
totalCommission = models.FloatField (blank = True,null = True)
profitRate = models.FloatField (blank = True,null = True)
webFakePriceRate = models.FloatField (blank = True,null = True)
webFakePrice = models.FloatField (blank = True,null = True)
view.py
def create (self,request,* args,** kwargs):
many = True if isinstance (request.data,list) else False
serializer = PriceSerializer (data = request.data,many = many)
if serializer.is_valid ():
serializer.save()
else:
return Response (serializer.errors,status = status.HTTP_400_BAD_REQUEST)
return Response (serializer.data,status = status.HTTP_201_CREATED)
解决方法
我是通过检入序列化程序来完成的。
例如:
def age_restriction(dob):
today = date.today()
age = today.year - dob.year - ((today.month,today.day) < (dob.month,dob.day))
if (not(20 < age < 30)):
raise serializers.ValidationError("You are no eligible for the job")
return dob
class EligibilitySerializer(serializers.Serializer):
email = serializers.EmailField()
name = serializers.CharField(max_length=200)
date_of_birth = serializers.DateField(validators=[age_restriction])