【发布时间】:2015-05-06 16:31:47
【问题描述】:
我想验证用户是否从只读字段更改了值。如果值已更改,则验证应返回错误消息。在我的情况下 start_date 始终是常量(从数据库中读取)。我想检查用户是否修改了这个值。
序列化器:
class IntervalSerializer(serializers.Serializer):
start_date = serializers.DateField(allow_null=False, input_formats=INPUT_FORMATS_DATE)
end_date = serializers.DateField(allow_null=False, input_formats=INPUT_FORMATS_DATE)
我的看法:
START_DATE = get_start_date()
serializer = IntervalSerializer(data=data)
if serializer.is_valid():
...
更新
当我将 read_only 设置为 True 时,我没有任何验证错误。我想检查用户是否更改了此字段。比如:
START_DATE = get_start_date() # from db
data['start_date'] = get_not_allowed() #when user send date i.e. in curl
serializer = IntervalSerializer(data=data, initial={'start_date': START_DATE})
if serializer.is_valid(): #should not pass because data['start_date'] is overriden
IntervalSerializer(data=data)
【问题讨论】:
标签: python django django-rest-framework