On Friday, February 3, 2017 at 4:05:55 PM UTC-5, MarkEdson AtWork wrote:
>
> I found a similar issue with a db.py module with code like this in it...
>
> from gluon.packages.dal.pydal import DAL, Field
> db = DAL("sqlite://storage.sqlite")
> db.define_table(
> "test",
> Field("myid", default=DEFAULT_VALUE, length=15),
> Field("name", default=DEFAULT_VALUE, length=15),
> Field("code", default=DEFAULT_VALUE, length=2),
> )
>
>
How are you using that module within your app?
Most likely, you should not be defining the db object at the top level of
your module. If you do that, you will have a single db object that lives
across all requests. The problem with that is if you dynamically change any
attributes of any models in some requests (e.g., temporarily changing the
default value or validator of a field), those changes will persist across
all requests (until changed again somewhere else).
Instead, you should define the db object and its models for each request.
If you want to keep the code in a module, put it inside of functions or
classes and call those functions/classes from your app's model or
controller code.
Anthony
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.