serializer.py
class ExamTermSerializer(serializers.Serializer):
name = serializers.CharField()
start_date = serializers.DateField()
end_date = serializers.DateField()
course = serializers.IntegerField()
_class = serializers.IntegerField()
def validate(self,data):
if data['start_date'] > data['end_date']:
raise serializers.ValidationError("Start Date Should be smaller")
return data
views.py
###Bunch of code..
_exm,c = ExamTerm.objects.get_or_create(name = data['name'],
defaults = {
'start_date':data['start_date'],
'end_date':data['end_date'],
'course_id':data['course'],
'_class_id':data['_class']
})
if not c:
raise serializers.ValidationError({
"Detail":['Exam With This name Already Exist']
})
return Response(data , status=status.HTTP_201_CREATED)
При поиске проверки уровня объекта в DRF я обнаружил, что это функция проверки, которую я написал в сериализаторе (т. Е. validate
).
Моя настоящая проблема в том, как реализовать эту validate
функцию из представлений так, чтобы start_date
всегда был меньше end_date
.