          prior to the validation call being made.
          """
          # Determine the underlying model field name. This may not be the
          # same as the serializer field name if `source=<>` is set.
          self.field_name = serializer_field.source_attrs[0]
          # Determine the existing instance, if this is an update operation.
          self.instance = getattr(serializer_field.parent, 'instance', None)
  
      def filter_queryset(self, value, queryset):
          """
 
</s> remove         self.field_name = serializer.fields[self.field].source_attrs[0]
        self.date_field_name = serializer.fields[self.date_field].source_attrs[0]
 </s> add         self.field_name = serializer.fields[self.field].source_attrs[-1]
        self.date_field_name = serializer.fields[self.date_field].source_attrs[-1]
        self.field_name = serializer_field.source_attrs[-1]
          prior to the validation call being made.
          """
          # Determine the underlying model field name. This may not be the
          # same as the serializer field name if `source=<>` is set.
        self.field_name = serializer_field.source_attrs[-1]
          # Determine the existing instance, if this is an update operation.
          self.instance = getattr(serializer_field.parent, 'instance', None)
  
      def filter_queryset(self, value, queryset):
          """
keep keep keep keep replace keep keep keep keep keep
 Fix #3844, refine validator for fields with <source=> kwargs

When serializers has fields with something like `source=user.email`, the
uniqueness validator should check `email` field instead of `user`, cause
`user` is a model object. 
rest_framework/validators.py