They both make a lot of sense. The former would be much easier to implement and would result in faster code. What do other people think?
On Jun 9, 11:32 pm, Salvor Hardin <salvor.pub...@gmail.com> wrote: > I'm new to python and web2py, so this might sound crazy but...here > goes. > > Noob idea #1 > Why not provide an optional "exec_models.cfg" file? If it doesn't > exist, execute *.py files in alphabetical order found in the models > folder. > > This will maintain backward compatibility and give web2py more > flexibility. > > If exec_models.cfg exists, then exec the files in the order specified > inside exec_models.cfg. If you want to get fancy, allow wildcards, > etc. Even better, you can also use exec_models.py or exec_models.yaml > instead of simple config. > > Noob idea #2 > Provide web2py's version of python's "import" function. Call it > "require(somefile.py)" and provide some web2py convention for > somefile.py to follow. That way, you can have require() detect and > decide what to do if somefile.py was already executed. Ruby has > "require" and rubygems added their own "require_gem()" function which > might provide useful ideas so you don't have to reinvent the wheel. > > It is late, and these are ideas that surfaced in the mind of a python > and web2py noob. If you must laugh, do so with compassion. In the > meantime, I'll try to read at least one python book by next Monday. > Think Python is free online and looks like a quick one. > > On Jun 9, 9:32 pm, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > My approach is to use > > > db_blablabla1.py > > db_blablabla2.py > > db_blablabla3.py > > .... > > > where db_blablabla.py defiles all tables that link each other for a > > specific purpose. The different files are independent and therefore > > the order of execution is not important. > > > On Jun 9, 9:20 pm, Thadeus Burgess <thade...@thadeusb.com> wrote: > > > > There are some things you can do to alleviate the situation. > > > > First, you can name you models so that they execute in the correct order. > > > > A_db.py > > > B_user.py > > > C_post.py > > > E_tag.py > > > > That said, I usually try to keep all related models in the same file. > > > In your case you might have > > > > B_user.py > > > C_weblog.py > > > > Since post and tag both belong to the same logical set of tables, > > > stick them together in one file. For objects, I also might subset it > > > simpler such as > > > > C_weblog.py > > > C_weblog_objects.py # contains virtualfield definitions. > > > > -- > > > Thadeus > > > > On Wed, Jun 9, 2010 at 4:42 PM, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > > No. This the main issue with web2py design. This is the price we pay > > > > for not having imports of models. > > > > > On Jun 9, 4:21 pm, Binh <btbinht...@gmail.com> wrote: > > > >> Hi, > > > > >> I am trying to create an orm setup like in ruby on rails with the DAL. > > > >> I have a user, post, and tag model. > > > >> A user has many posts. > > > >> A tag belongs to a user. > > > >> A post has and belongs to many tags. > > > >> A tag has and belongs to many posts. > > > > >> I have 4 separate files in my models folder: db.py, user.py, post.py, > > > >> and tag.py > > > >> db.py contains the db connection and mail configurations. > > > >> The respective model files define the table structure and have a class > > > >> named after the model to implement virtual fields. > > > > >> I noticed that defining the tables with relationships in the separate > > > >> files does not work properly. > > > >> The model files would load which appears to be in alphabetical order. > > > >> So, my db.py would load first and then post.py which fails. > > > >> post.py fails to recognize the table definition in user.py, so it > > > >> cannot define the belongs to relationship. > > > > >> Is their anyway to setup a model file to import all the other models > > > >> without the hassle of file load order and possibly import order which > > > >> rails does implicitly?