根据请求验证(Django Rest Framework)序列化器字段

时间:2019-05-22 17:56:50

标签: python django django-rest-framework

我正在尝试基于Request对象验证DRF序列化程序CharField。必须对照根据请求过滤的其他数据库值检查提供的值是否唯一。

我尝试设置to_representation方法,但是在检索数据时也可以运行。

1 个答案:

答案 0 :(得分:0)

您在谈论这样的事情吗?

class FooSerializer(serializers.Serializer):
    bar = serializers.CharField(max_length=100)
    filter1 = serializers.CharField(max_length=100)
    filter2 = serializers.CharField(max_length=100)

    def validate(self, data):
        print('bar value:', data.get('bar'))
        print('filter1 value:', data.get('filter1'))
        print('filter2 value:', data.get('filter2'))
        # Put your conditions and queries here and raise serializers.ValidationError() if they don't match
        return data
serializer = FooSerializer(data=request.data)
serializer.is_valid(raise_exception=True)