code: def validate(self, instance, value):
          
          if isinstance(value, string_types):
              if (
                      value.upper() not in VECTOR_DIRECTIONS or
                      value.upper() in ('Z', '-Z', 'UP', 'DOWN')
              ):
                  self.error(instance, value)
              value = VECTOR_DIRECTIONS[value.upper()][:2]
  
          return super(Vector2, self).validate(instance, value)
docs: Check shape and dtype of vector
  
          validate also coerces the vector from valid strings (these
          include ZERO, X, Y, -X, -Y, EAST, WEST, NORTH, and SOUTH) and
          scales it to the given length.