示例#1
0
    def serialize(self, request=None, tag=None):
        if tag is None:
            tag = self._xobj.tag
        if not self.list_fields:
            return XObjIdModel.serialize(self, request, tag=tag)
        # We only support one list field right now
        listField = self.list_fields[0]

        modelList = getattr(self, listField)

        if request:
            modelList = self.filterBy(request, modelList)
            modelList = self.orderBy(request, modelList)
            self.paginate(request, listField, modelList)

        etreeModel = XObjIdModel.serialize(self, request, tag=tag)
        if self._pagedId is not None:
            etreeModel.attrib['id'] = self._pagedId
        return etreeModel
示例#2
0
    def get_absolute_url(self, request=None, parents=None, model=None,
                         paged=False, startIndex=None, full=None):
        url = XObjIdModel.get_absolute_url(self, request, parents, model)

        if url:
            if paged:
                limit = request.GET.get('limit', settings.PER_PAGE)
                url += ';start_index=%s;limit=%s' % (startIndex, limit)
            if self.order_by:
                url += ';order_by=%s' % self.order_by
            if self.filter_by:
                url += ';filter_by=%s' % urllib.quote(self.filter_by, safe="[],")
        return url