I already have that, see above code second last line on imports On Thursday, February 27, 2020 at 4:35:25 PM UTC+3, Jim S wrote: > > Where is db being defined in your controller? Are you importing it from > common? > > In my controller I have > > from ..common import db, session, T, cache, auth, logger > > and later > > @action.uses("applications/index.html", session, db, T, auth.user) > def index(): > page['sub_title'] = A('MENU', _href=URL('index')) > return dict(page=page) > > Does that help? If not, can you post a minimal common.py, models.py and > your controller? > > -Jim > > On Thursday, February 27, 2020 at 5:55:23 AM UTC-6, Maurice Waka wrote: >> >> Hello, from this code, I have already defined my table in models as >> follows: >> >> import os >> import datetime as dt >> from datetime import datetime, timedelta, date >> from py4web import action, request, DAL, Field, Session, Cache, user_in >> from py4web.utils.auth import Auth >> from py4web import action, request, abort, redirect, URL, Field >> from py4web.utils.form import Form, FormStyleBulma >> from py4web.utils.publisher import Publisher, ALLOW_ALL_POLICY >> from pydal.validators import * #IS_NOT_EMPTY, IS_INT_IN_RANGE, >> IS_IN_SET, IS_IN_DB, IS_EMAIL, IS_MATCH >> from pydal.validators import * >> from . common import db, session, T, cache, authenticated, >> unauthenticated, Field >> from pydal.validators import * >> >> >> ### Define your table below >> >> >> # exposes services necessary to access the db.thing via ajax >> publisher = Publisher(db, policy=ALLOW_ALL_POLICY) >> # define session and cache objects >> session = Session(secret="some secret") >> cache = Cache(size=1000) >> >> >> # define database and tables >> #connection = sqlite.connect('cache.db', timeout=10) >> db = DAL("sqlite://xstorage.db", folder=os.path.join(os.path.dirname( >> __file__), "databases"))#db = DAL("sqlite://storage.db", >> folder=os.path.join(os.path.dirname(__file__), "databases")) >> #db = DAL( "postgres://mauricewaka:b3th32dau2a##@localhost:5432/py4db", >> migrate=False) >> auth = Auth(session, db) >> # (configure here) >> auth.enable() >> >> >> db.define_table('answers', >> Field('author', 'reference auth_user', default=auth. >> user_id, writable=False, readable=False), >> Field("message", 'text', requires=IS_NOT_EMPTY(), notnull >> =False), >> auth.signature >> ) >> >> >> >> >> In the controllers, this is my code: >> >> @authenticated() >> @action.uses(auth.user) >> def index(): >> >> ...some code... >> yesterday = dt.datetime.utcnow() - dt.timedelta(days=1) >> >> db(db.answers.modified_on < yesterday).delete() >> ...some more code.... >> >> >> >> But I get this errors: >> Traceback (most recent call last): >> File "/home/maurice/py4web/py4web/core.py", line 551, in wrapper >> ret = func(*func_args, **func_kwargs) >> File "/home/maurice/py4web/py4web/core.py", line 512, in wrapper >> ret = func(*args, **kwargs) >> File "/home/maurice/py4web/py4web/core.py", line 512, in wrapper >> ret = func(*args, **kwargs) >> File "apps/scaffoldx/controllers.py", line 571, in index >> db(db.answers.modified_on < yesterday).delete() >> File "/home/maurice/.local/lib/python3.6/site-packages/pydal/base.py", >> line 763, in __getattr__ >> return BasicStorage.__getattribute__(self, key) >> AttributeError: 'DAL' object has no attribute 'answers' >> >> >> >> What could be wrong here and how can I solve it? >> >> N/B >> >> I have tried to define the table inside the controller code with an error >> coming as : 'table already defined'. When I remove the definition then the >> above error comes. >> >> Regards >> >>
-- 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 web2py+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/web2py/9ca9d3ed-1452-48ac-aa9d-a8ca4c4cebca%40googlegroups.com.