code: def _select_list(self, model=None, queryview=None, queryform=None,
                       auto_condition=True,
                       post_view=None, post_run=None, **kwargs):
          
          from uliweb import request, json
          from uliweb.utils.generic import get_sort_field
          import copy
  
          condition = None
          if queryview and auto_condition:
              queryview.run()
              if hasattr(queryview, 'get_condition'):
                  condition = queryview.get_condition()
  
          if 'condition' in kwargs:
              condition = kwargs['condition'] & condition
  
          kwargs['condition'] = condition
  
          #process order
          if 'order_by' not in kwargs:
              order_by = get_sort_field(model)
              if order_by is not None:
                  kwargs['order_by'] = order_by
  
          _fields = copy.copy(kwargs.get('fields_convert_map', []))
          self._process_fields_convert_map(kwargs)
          downloads = self._parse_download_args(kwargs, _fields)
          self._process_fields_convert_map(downloads, download=True)
  
          view = self._select_list_view(model, **kwargs)
  
          if post_view:
              post_view(view)
  
          if 'data' in request.values:
              return json(view.json())
          elif 'download' in request.GET:
              return view.download(**downloads)
          else:
              result = view.run()
              if queryform or queryview:
                  result.update({'query_form':queryform or queryview.form})
              else:
                  result.update({'query_form':''})
              result.update({'table':view})
  
              if post_run:
                  post_run(view, result)
              return result
docs: SelectListView wrap method
          :param auto_condition: if using queryview to create condition