<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def order_by(self, *order_bys):
 """ Add a list of ingredients to order by to the query. These can either be Dimension or Metric objects or strings representing order_bys on the shelf. The Order_by expression will be added to the query's order_by statement :param order_bys: Order_bys to add to the recipe. Order_bys can either be keys on the ``shelf`` or Dimension or Metric objects. If the key is prefixed by "-" the ordering will be descending. :type order_bys: list """


        # Order bys shouldn't be added to the _cauldron
        self._order_bys = []
        for ingr in order_bys:
            order_by = self._shelf.find(ingr, (Dimension, Metric))
            self._order_bys.append(order_by)

        self.dirty = True
        return self