docs: def get_model_fields(model, add_reserver_flag=True):
      """
      Creating fields suit for model_config , id will be skipped.
      """
      import uliweb.orm as orm
  
      fields = []
      m = {'type':'type_name', 'hint':'hint',
           'default':'default', 'required':'required'}
      m1 = {'index':'index', 'unique':'unique'}
      for name, prop in model.properties.items():
          if name == 'id':
              continue
          d = {}
          for k, v in m.items():
              d[k] = getattr(prop, v)
          for k, v in m1.items():
              d[k] = bool(prop.kwargs.get(v))
          d['name'] = prop.fieldname or name
          d['verbose_name'] = unicode(prop.verbose_name)
          d['nullable'] = bool(prop.kwargs.get('nullable', orm.__nullable__))
          if d['type'] in ('VARCHAR', 'CHAR', 'BINARY', 'VARBINARY'):
              d['max_length'] = prop.max_length
          if d['type'] in ('Reference', 'OneToOne', 'ManyToMany'):
              d['reference_class'] = prop.reference_class
              #collection_name will be _collection_name, it the original value
              d['collection_name'] = prop._collection_name
          d['server_default'] = prop.kwargs.get('server_default')
          d['_reserved'] = True
          fields.append(d)
  
      return fields