gpt4 book ai didi

django - 如何验证在序列化/反序列化期间至少存在两个字段之一

转载 作者:行者123 更新时间:2023-12-05 08:52:57 25 4
gpt4 key购买 nike

我正在使用 Django Rest Framework 并定义我的 Serializer 类。Serializer 类正在验证的输入包含两个字段,如下所示:

"absolute_date_range":{
"start":...,
"end":...,
}

"relative_date_range"="last_7"

用户可以选择传递其中一项或两项。但至少必须有一项。如果不是,则应导致验证错误。

required=True 条件仅适用于单个字段。如果我使用自定义逻辑执行此操作,那么这是放置此逻辑的最佳位置 - 序列化程序或 in a Custom FieldField level validation

我如何在我的序列化程序中执行此操作?

最佳答案

class YourSerializer(serializers.Serializer)
start = serializers.DateTimeField()
finish = serializers.DateTimeField()

def validate(self, data):
"""
Validation of start and end date.
"""
start_date = data['start']
end_date = data['finish']
if not start_date and not end_date:
raise serializers.ValidationError("at least one date input required.")
if other logic:
other logic stuff
return data

这对你来说是更好的解决方案

关于django - 如何验证在序列化/反序列化期间至少存在两个字段之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55108046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com