Django rest api验证请求中发送的数据

Pab*_*nga 3 django django-rest-framework

我正在尝试构建一个Django rest api,以允许我的客户端发送带有数据的请求,以便我可以将它们保存到db.我已经完成了那部分,但除了通过Serializers实现的格式验证之外,我还想检查数据验证....例如

UnitOfMeasureName = ["Each", "Grams", "Ounces", "Pounds", "Kilograms", "Metric Tons"]
Run Code Online (Sandbox Code Playgroud)

UnitOfMeasureName应该是列表中的上述之一,

因此,如果用户发送{..., 'UnitOfMeasureName': 'invalid_one', ...}请求数据,我想发送错误的请求.(这将传递序列化程序,因为类型是字符串)

有任何想法,如果您需要任何澄清,请在评论中提问.并提前感谢.. :)

小智 6

在序列化程序类中添加一个方法来验证UnitOfMeasureName如下:

def validate_unitofmasurename(self, value):
    UnitOfMeasureName = ["Each", "Grams", "Ounces", "Pounds", "Kilograms", "Metric Tons"]
    if value in UnitOfMeasureName:
        return True
    else:
        return ValidationError('Invalid masure name')
Run Code Online (Sandbox Code Playgroud)