在DRF serializers.HiddenField()
上执行字段级验证的正确方法是什么?我尝试了什么(假设字段名为x):
- 向序列化程序类添加
validate_x()
方法。在部分更新操作(HTTP PATCH)中未调用此方法。 - 尝试在
validate(self, data)
方法中验证它。数据字典中不存在。 - 尝试创建验证程序并将其传递给验证程序字段参数,但未调用它们。
在部分更新中,如何正确添加自定义校验?我使用的是DRF v3.12.4
注意:我希望字段从请求体定义中隐藏,并且仍然能够在序列化器中验证和包含字段。
1条答案
按热度按时间lx0bsm1f1#
我很确定你不应该验证它?此字段不是由用户提供的,因此不需要验证。
在DRF文档中,它被称为:
一个字段类,它不根据用户输入获取值,而是从默认值或可调用值中获取值。
他们还谈到了它的验证:
使用HiddenField。此字段将出现在validated_data中,但不会在序列化器输出表示中使用。
但是,您可以在
create
或update
方法或序列化程序中执行特殊/条件操作,因为您可以访问validated_data
,其中的字段将是可访问的看这里和这里