我有一个以下序列化器:
class QuestionSerializer(serializers.ModelSerializer):
choices = ChoiceSerializer(many=True)
image = Base64ImageField(required=False)
def validate_image(self, value):
import ipdb
ipdb.set_trace()
# if value.get('fileArray', None):
# if value.get('dataURL', None):
# return value.get('dataURL')
# else:
# raise serializers.ValidationError("No file data present")
# else:
# return None
class Meta:
model = Question
fields = ('id', 'detail', 'image', 'true_false_answer', 'type', 'choices')
然后在视图中:
serializer = QuestionSerializer(data=data)
serializer.is_valid()
这给了我错误 和
serializer.errors
给出:
{'image': ['The submitted data was not a file. Check the encoding type on the form.']}
我发现 validate_image 永远不会被调用。 可能是什么问题?
答案 0 :(得分:2)
如果默认DRF验证通过,我发现从未调用validate_image。可能是什么问题?
tf.Variable
将被称为。
当序列化程序已经知道该字段无效时验证图像字段没有意义。