On Fri, Oct 28, 2016 at 3:19 AM, mike bayer <mike...@zzzcomputing.com> wrote:
>
>
> On 10/27/2016 09:41 PM, Jonathan Vanasco wrote:
>>
>> I have an edge-case in a few situations where, within an @property of a
>> SqlAlchemy object, I need to know the current active web-request/context.
>>
>> I'm currently using Pyramid's `get_current_request`, but it is no longer
>> recommended -- so I'd like to get a proper solution in place.
>>
>> I have a new `session` per request context, so I was thinking about
>> using an event to handle this concern.  It looks like `before_attach` is
>> only for `INSERT` type operations; is there an appropriate event that
>> can adjust an object after a `SELECT`?
>
>
> well I'd use session.info to stick the pyramid request, or some token
> identifying it, in there.   before_attach would get you all the persistence
> and something like instanceevents.load() would get you the load.   1.1 has
> all new events that clearly identify how to get every object transition into
> "persistent" as well.
>

I use something like this:

    def makesession(request):
        dbsession = sessionmaker()
        dbsession.request = request
        def closesession(request):
            dbsession.close()
            del dbsession.request
        request.add_finished_callback(closesession)
        return dbsession

    config.add_request_method(makesession, 'dbsession', reify=True)

I really ought to be using session.info rather than sticking a new
property directly on the session object...

Simon

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to