code: def _init_properties(self):
          
          super(ModelRestApi, self)._init_properties()
          # Reset init props
          self.description_columns = self.description_columns or {}
          self.list_exclude_columns = self.list_exclude_columns or []
          self.show_exclude_columns = self.show_exclude_columns or []
          self.add_exclude_columns = self.add_exclude_columns or []
          self.edit_exclude_columns = self.edit_exclude_columns or []
          self.order_rel_fields = self.order_rel_fields or {}
          # Generate base props
          list_cols = self.datamodel.get_user_columns_list()
          if not self.list_columns and self.list_model_schema:
              list(self.list_model_schema._declared_fields.keys())
          else:
              self.list_columns = self.list_columns or [
                  x
                  for x in self.datamodel.get_user_columns_list()
                  if x not in self.list_exclude_columns
              ]
  
          self._gen_labels_columns(self.list_columns)
          self.order_columns = (
              self.order_columns or
              self.datamodel.get_order_columns_list(list_columns=self.list_columns)
          )
          # Process excluded columns
          if not self.show_columns:
              self.show_columns = [
                  x for x in list_cols if x not in self.show_exclude_columns
              ]
          if not self.add_columns:
              self.add_columns = [
                  x for x in list_cols if x not in self.add_exclude_columns
              ]
          if not self.edit_columns:
              self.edit_columns = [
                  x for x in list_cols if x not in self.edit_exclude_columns
              ]
          self._filters = self.datamodel.get_filters(self.search_columns)
          self.edit_query_rel_fields = self.edit_query_rel_fields or dict()
          self.add_query_rel_fields = self.add_query_rel_fields or dict()
docs: Init Properties