def __call__(self, form, form_opts=None, field_args={}): """ Render container. :param form: Form object :param form_opts: Form options :param field_args: Optional arguments that should be passed to template or the field """ context = helpers.get_render_ctx() def caller(**kwargs): return context.call(self.child_rule, form, form_opts, kwargs) args = dict(field_args) args['caller'] = caller return super(Container, self).__call__(form, form_opts, args)
def __call__(self, form, form_opts=None, field_args={}): """ Render macro rule. :param form: Form object :param form_opts: Form options :param field_args: Optional arguments that should be passed to the macro """ context = helpers.get_render_ctx() macro = self._resolve(context, self.macro_name) if not macro: raise ValueError('Cannot find macro %s in current context.' % self.macro_name) opts = dict(self.default_args) opts.update(field_args) return macro(**opts)