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

时间:2018-04-05 07:28:04

标签: django django-rest-framework

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

UnitOfMeasureName = ["Each", "Grams", "Ounces", "Pounds", "Kilograms", "Metric Tons"]

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

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

请提出任何意见,如果您需要任何澄清,请在评论中提问。并提前感谢.. :)

1 个答案:

答案 0 :(得分: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')