我有以下序列化器来接收设置更改,并且我想检查请求中是否至少存在一项不需要的设置。我现在拥有的验证函数将像任何其他字段一样检查
dot_id
和 user_id
,但是如何从验证中排除这两个字段?
class FrameImageSerializer(serializers.Serializer):
dot_id = serializers.IntegerField()
user_id = serializers.IntegerField()
is_active = serializers.BoolField(required=False)
is_fullscreen = serializers.BoolField(required=False)
resolution = serializers.ListField(
required=False,
min_length=4,
max_length=4
)
class Meta:
fields = "__all__"
def validate(self, data):
if not data: # except for dot_id and user_id...
raise serializers.ValidationError(
"At least one setting change needs to be present!"
)
return data
更新: 现在我找到了这样的解决方案:
clean_data = data[2:] # since these two fields are always first
if not clean_data:
...
有没有更聪明的方法来做我想做的事?