コード例 #1
0
ファイル: resources.py プロジェクト: sylane/feat
        def check_model(model):
            if model is None:
                raise http.NotFoundError()

            if IReference.providedBy(model):
                return process_reference(model)

            if model.reference is not None:
                return process_reference(model.reference)

            return model
コード例 #2
0
ファイル: model.py プロジェクト: sylane/feat
    def _wrap_source(self, source, view, model_factory):
        if source is None:
            return source

        if IReference.providedBy(source):
            return source

        if IModel.providedBy(source):
            return self._init_model(source, view)

        if not IModelFactory.providedBy(model_factory):
            if callable(model_factory):
                ctx = self.model.make_context(key=self.name, view=view)
                d = model_factory(source, ctx)
                d.addCallback(self._got_model_factory, source, view)
                return d

        return self._got_model_factory(model_factory, source, view)
コード例 #3
0
ファイル: applicationjson.py プロジェクト: zaheerm/feat
def render_value(value, context):
    if IReference.providedBy(value):
        return value.resolve(context)
    return value
コード例 #4
0
ファイル: resources.py プロジェクト: sylane/feat
 def process_reference(reference):
     reference = IReference(reference)
     context = self.make_context(request, remaining[1:])
     address = reference.resolve(context)
     raise http.MovedPermanently(location=address)