<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def cursor(self):
 """ Returns a cursor for the currently assembled query, creating it if it doesn't already exist. """

        if not self._active_cursor:
            self._active_cursor = self.model.find(self.query,
                                                  self.projection or None,
                                                  **self.options)
        return self._active_cursor