docs: def get_fields(self):
          """
          get property instance according self.columns
          """
          columns = self.columns
          model = self.model
          fields = []
          for col in columns:
              if isinstance(col, (str, unicode)):
                  v = col.split('.')
                  if len(v) > 1:
                      field = get_model(v[0], engine_name=self.model.get_engine_name(),
                                        signal=False).properties(v[1])
                  else:
                      field = model.properties[col]
              elif isinstance(col, Column):
                  field = get_model(col.table.name, engine_name=self.model.get_engine_name(),
                                    signal=False).properties[col.name]
              else:
                  field = col
              
              fields.append(field)
          
          return fields