【发布时间】:2018-04-12 21:02:28
【问题描述】:
我有一个如下所示的序列化程序:
class MySerializer(serializers.Serializer):
lat = serializers.FloatField(required=False)
lng = serializers.FloatField(required=False)
我想确保如果请求带有 'lat' 字段,则 'lng' 字段将是强制性的,反之亦然。
我可以使用 validate 函数来做到这一点,但相信有更好的方法来做到这一点。
【问题讨论】:
-
将两个字段的
required参数更改为True怎么样?, (lat = serializers.FloatField(required=True)) -
但我需要一个两者都不存在的选项。因此,如果用户只发送 lat 它应该会失败,如果他没有提供应该可以的 lat 或 lng,lng 只会失败。
-
如果是这样,我认为最好也是唯一的选择是定义一个 validate() 方法或泛型 Validator 类
标签: django django-rest-framework