Hi folks, I want to make a schema + a form connecting to SQLAlchemy and be able to identify if an username is unique and emails are unique. I am using these as a base:
https://docs.pylonsproject.org/projects/pyramid-simpleform/en/latest/ https://github.com/thruflo/pyramid_simpleauth/blob/master/src/pyramid_simpleauth/schema.py#L212 https://github.com/thruflo/pyramid_simpleauth/blob/master/src/pyramid_simpleauth/model.py#L290 For example, class Signup(formencode.Schema): """Form fields to render and validate for signup.""" allow_extra_fields=True filter_extra_fields=True username = UniqueUsername(not_empty=True) email = UniqueEmail(resolve_domain=False, not_empty=True) password = Password(not_empty=True) confirm = Password(not_empty=True) chained_validators = [ validators.FieldsMatch( 'password', 'confirm' ) ] In the example from simpleauth he has a function called get_existing_user that UniqueUsername is calling in the _validate_python method. However the get_existing_user is accessing a global SQLAlchemy session which is always exposed: https://github.com/thruflo/pyramid_basemodel/blob/master/src/pyramid_basemodel/__init__.py#L54 I wanted to use what the current Pyramid documentation suggests, which is, having a request.dbsession that you propagate through your code instead of a global variable. For example: https://github.com/Pylons/pyramid-cookiecutter-alchemy/blob/latest/%7B%7Bcookiecutter.repo_name%7D%7D/%7B%7Bcookiecutter.repo_name%7D%7D/models/__init__.py#L52 Is there any way to make pyramid_simpleform / formencode receive the request.dbsession? I couldn't figure out from the docs, tried some parameters like state and extra but no juice. In the end I did something like: from pyramid.threadlocal import get_current_request request=get_current_request().dbsession Which the Pyramid docs tells not to do and I don't want to. Thanks! -- Atenciosamente/Regards André Castelan Prado -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/pylons-discuss/CAG%3D2wZeJ3SbCmFbfhdOvPE1aJ9f%3DPYrF8YAx%2BN5A7fWd%3DFhsMg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
