Modelo de datos en modulo

25 views
Skip to first unread message

Matias Uhart

unread,
Apr 2, 2015, 6:18:47 PM4/2/15
to web2py-...@googlegroups.com
Buenas gente! Soy un tanto nuevo en esto de la programación y decidí comenzar mis andanzas por este área usando web2py. Sin tanta chachara paso a comentarles lo que estoy tratando de hacer....
Resulta que estoy haciendo un par de clases para resumir un poco mi app, las cuales trate de implementarlas mediante modulos, pero me encuentro con el dilema de que no encuentro manera de poder acceder al modelo de datos desde ese modulo.
Estuve googleando acerca de esto y lo que encontré no logre hacer que funcione, con lo cual siempre termino en los mismos errores "db is not defined" o  "'DAL' object has no attribute 'nombredetabla'". Podrian guiarme un poco acerca de esto? Saludos!

Martín Miranda

unread,
Apr 3, 2015, 7:19:42 PM4/3/15
to web2py-...@googlegroups.com
Lo que sucede es que los módulos no se ejecutan, debes importarlos. Y por ende todo lo que web2py "importa automáticamente por tí" no lo hace a nivel de módulos, entonces tienes que buscar una manera de pasar aquellos objetos que se encuentran en el environment de web2py.

class Modulo(object):
   
def __init__(self,db):
       
self.db = db
       
self.table = db.table
       
# seguir la definición.
   
def to_readable(self):
       
for field in self.table.fields:
           field
.readable = True

# En models
m
= Modulo(db)

Otra forma de hacerlo es utilizar el Thread current.

from gluon import *

class Modulo(object):
     
def __init__(self):
         
self.db = current.globalenv.get('db')

     
def to_readable(self):
         
for field in self.db.table.fields:
             field
.readable = True


Message has been deleted

Martín Miranda

unread,
Apr 3, 2015, 8:16:17 PM4/3/15
to web2py-...@googlegroups.com
# Fé de errante.

from gluon import current

class Modulo(object):
     
def __init__(self):
         
self.db = current.globalenv.get('db'
)
         
self.table = self.db.table

     
def to_readable(self):
         
for field in self.table.fields:

             
self.table[field]
.readable = True



El jueves, 2 de abril de 2015, 19:18:47 (UTC-3), Matias Uhart escribió:
Reply all
Reply to author
Forward
0 new messages