# -*- coding: utf-8 -*- from pylons import config from pylonsapp import model from pylonsapp.forms import FieldSet from formalchemy.ext.fsblob import FileFieldRenderer Files = FieldSet(model.Files) Files.configure(options=[ Files.path.with_renderer( FileFieldRenderer.new(storage_path=config['app_conf']['storage_path'], url_prefix='/')) ])
import logging from pylons import request, response, session, url, tmpl_context as c from pylons.controllers.util import abort, redirect from pylonsapp.lib.base import BaseController, render from pylonsapp.model import meta from pylonsapp import model from pylonsapp.forms import FieldSet log = logging.getLogger(__name__) Foo = FieldSet(model.Foo) Foo.configure(options=[Foo.bar.label('This is the bar field')]) class BasicController(BaseController): def index(self, id=None): if id: record = meta.Session.query(model.Foo).filter_by(id=id).first() else: record = model.Foo() assert record is not None, repr(id) c.fs = Foo.bind(record, data=request.POST or None) if request.POST and c.fs.validate(): c.fs.sync() if id: meta.Session.update(record) else: meta.Session.add(record) meta.Session.commit() redirect(url.current(id=record.id)) return render('/form.mako')