def list(self, other_pks=None, filters=None):
        try:
            pk = primary_key(self.cls)
        except KeyNotFoundException:
            pk = None

        filter_dict = dict()

        if filters:
            filter_dict = {k: v for k, v in filters.items()}
            filter_dict.pop('format', None)
            filter_dict.pop('page', None)
            filter_dict.pop('sort_by', None)

        if other_pks:
            query_pks = dict()

            # Use only those keys which are primary keys
            # and pick them up from the passed dict
            for key in class_keys(self.cls):
                if key in other_pks:
                    query_pks[key] = other_pks[key]

            query_pks.update(filter_dict)

            if pk:
                queryset = self.session.query(self.cls.__dict__[pk]).filter_by(
                    **query_pks).all()
            else:
                queryset = self.session.query(self.cls).filter_by(
                    **query_pks).all()
        else:
            if filter_dict:
                if pk:
                    queryset = self.session.query(
                        self.cls.__dict__[pk]).filter_by(
                        **filter_dict).all()
                else:
                    queryset = self.session.query(self.cls).filter_by(
                        **filter_dict).all()
            else:
                if pk:
                    queryset = self.session.query(self.cls.__dict__[pk]).all()
                else:
                    # Limit to 1000 rows, this is worst case scenario
                    queryset = self.session.query(self.cls).limit(1000).all()

        return queryset
List returns back list of URI
dataset/ETHPy150Open dealertrack/djangorest-alchemy/djangorest_alchemy/managers.py/AlchemyModelManager.list