未调用ForeignKey字段上的Django Rest Framework自定义验证函数

未调用ForeignKey字段上的Django Rest Framework自定义验证函数,django,validation,django-rest-framework,Django,Validation,Django Rest Framework,我有一个ModelSerializer,它有一个ForeignKey字段。这是模型的代码: class Attendance(models.Model): employee = models.ForeignKey(Employee, related_name='attendance_times') datetime = models.DateTimeField() 这是序列化程序: class AttendanceSerializer(serializers.ModelSeri

我有一个
ModelSerializer
,它有一个
ForeignKey
字段。这是模型的代码:

class Attendance(models.Model):
    employee = models.ForeignKey(Employee, related_name='attendance_times')
    datetime = models.DateTimeField()
这是序列化程序:

class AttendanceSerializer(serializers.ModelSerializer):

    def validate_employee(self, value):
        try:
            Employee.objects.get(pk=value)
        except Employee.DoesNotExist:
            Employee.objects.create(pk=value)
        return value

    class Meta:
        model = Attendance
        fields = ('employee', 'datetime')
问题是,当我发送post请求以创建新对象时,没有调用函数
validate\u employee
,序列化程序返回一个验证错误,说明:

无效的pk“1321”-对象不存在


为什么会这样?我做错什么了吗?是否在我的验证器之前调用了另一个验证器?

在调用
验证之前会发生一些事情


特别是,字段本身将执行初始验证检查,并将传入数据转换为Python对象。使用
PrimaryKeyRelatedField
它将检查关联的模型并返回实例。

是否有方法覆盖该验证?我想创建一个新对象,如果它不存在@linoviaHave your-your-your-field并重写