modules load another function that define tables

25 views
Skip to first unread message

黄祥

unread,
Mar 8, 2022, 5:01:20 AM3/8/22
to web2py-users
modules/database_pydal
def database():
    from pydal import DAL
    DB_URI = "sqlite://test.sqlite"
    db = DAL(DB_URI, pool_size = 1, migrate = True,
             fake_migrate = False)
    return db

def table_customer():
    from pydal import Field
    from pydal.validators import IS_NOT_EMPTY
    db = database()
    db.define_table('customer',
        Field('name', requires = IS_NOT_EMPTY() ),
        Field('address', requires = IS_NOT_EMPTY() )
        )
    db.customer._enable_record_versioning()
    return db

def table_sales():
    from pydal import Field
    from pydal.validators import IS_NOT_EMPTY
    db = database()
    db.define_table('sales',
        Field('sales_date', requires = IS_NOT_EMPTY() ),
        Field('sales_no', requires = IS_NOT_EMPTY() )
        )
    db.sales._enable_record_versioning()
    return db

def tables_sales():
    db = database()
    db = table_customer()
    db = table_sales()
    return db

controllers/default.py

def tables_sales():
    from database_pydal import tables_sales
    query = (db['customer']['id'] > 0)
    rows = db(query).select().as_json()
    return rows

objective
modules tables_sales can load both table customer and table sales (similar to response.models_to_run)

question
how can achieve it using web2py way ?

thanks and best regards,
stifan
Reply all
Reply to author
Forward
0 new messages