def get(self, request, response, _appname, _modelname):
        """Return a HAL formatted version of the instance list.
        """
        root = get_slumber_root()

        hal = Builder(self())
        hal.add_link('model', root + self.model.path)

        query = self.model.model.objects
        hal_instance_list(self, request.GET, hal, query)

        response["instances"] = hal.as_object()
        response.root = 'instances'
def hal_instance_list(operation, control, builder, query_set, page_size=10):
    """Return a page of JSON-HAL based results across the query set.
    """
    from slumber import data_link
    starter = control.get('lpk', None)
    if starter:
        query_set = query_set.filter(pk__lt=starter)
    lpk = None
    for instance in query_set.order_by('-pk').iterator():
        if page_size == 0:
            builder.add_link('next', operation(lpk=lpk))
            return
        else:
            page_size -= 1
            lpk = instance.pk
            item = Builder(data_link(instance))
            item.set_property('display', unicode(instance))
            builder.embed('page', item)