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.

Reply via email to