I added companies definition in db.py. It will be ok for now. Thanks. On Monday, April 8, 2013 11:05:22 AM UTC+2, Domagoj Kovač wrote: > > Is there any way to load models manually? > > On Monday, April 8, 2013 10:23:55 AM UTC+2, Niphlod wrote: >> >> uhm. if you want that field to be a reference to the values on the table, >> the table must be defined, so I don't see how a SQLFORM.factory could help >> you with that. >> You simply have a conditional model that for your app logic doesn't need >> to be conditional . >> >> On Monday, April 8, 2013 10:20:56 AM UTC+2, Domagoj Kovač wrote: >>> >>> I see it now. Thanks man! I have a different problem now, now i don't >>> get any errors immediately but when i go on users/create i get an error >>> saying: >>> <type 'exceptions.AttributeError'> 'DAL' object has no attribute >>> 'companies' >>> obviously companies model is not loaded, i am thinking on switching to >>> SQLform.factory, would this be a better solution? In models i define my >>> tables and then in my controller i make a form, then insert and updated >>> goes manually, but this is not so problematic. >>> >>> >>> On Monday, April 8, 2013 9:52:24 AM UTC+2, Niphlod wrote: >>>> >>>> too many db..... >>>> >>>> requires=IS_IN_DB(db, (db, 'companies.id', '%(name)s')) >>>> >>>> needs to be >>>> >>>> requires=IS_IN_DB(db, 'companies.id', '%(name)s') >>>> >>>> >>>> >>>> On Monday, April 8, 2013 9:39:15 AM UTC+2, Domagoj Kovač wrote: >>>>> >>>>> Hi, >>>>> >>>>> i tried moving companies outside of db.py. >>>>> >>>>> In db.py i have: >>>>> >>>>> auth.settings.extra_fields['auth_user'] = [Field('deleted', 'boolean', >>>>> default=False), >>>>> Field('company_id', 'reference >>>>> companies', requires=IS_IN_DB(db, (db, 'companies.id', '%(name)s')))] >>>>> >>>>> Error i am receiving now is: >>>>> <type 'exceptions.ValueError'> too many values to unpack >>>>> What is wrong now? >>>>> >>>>> On Friday, April 5, 2013 7:09:28 PM UTC+2, Anthony wrote: >>>>>> >>>>>> Note, simply doing (db, 'companies.id', ...) may not completely >>>>>> resolve the problem. Even doing that, the db.companies table is only >>>>>> getting defined conditionally when the "companies" controller is called, >>>>>> but the db.auth_user table is defined on every request, and it could be >>>>>> used by other controllers. If the auth_user table links to another >>>>>> table, >>>>>> it may be a good idea to make sure that other table is defined whenever >>>>>> the >>>>>> auth_user table is defined (i.e., maybe move the db.companies table >>>>>> definition into db.py or some other model that isn't conditionally >>>>>> executed). >>>>>> >>>>>> Anthony >>>>>> >>>>>> On Friday, April 5, 2013 11:30:38 AM UTC-4, Niphlod wrote: >>>>>>> >>>>>>> Nope. >>>>>>> when "auth" definition is encountered, if you want to use >>>>>>> db.companies.id written as it is, db.define_table('companies') >>>>>>> should have been executead already. >>>>>>> You need to change your IS_IN_DB call to (db, 'companies.id', >>>>>>> '%(name)s') ... notice the ticks around companies.id, it's a >>>>>>> string.... >>>>>>> When you do it that way, the db.companies table will be called not >>>>>>> at "models definition" time, but at the time the page is rendered (so, >>>>>>> allowing all the models to be executed before --> having at your >>>>>>> disposition the companies table) >>>>>>> >>>>>>> On Friday, April 5, 2013 5:11:32 PM UTC+2, Domagoj Kovač wrote: >>>>>>>> >>>>>>>> Thanks guys, >>>>>>>> >>>>>>>> right now my db.py looks like this: >>>>>>>> >>>>>>>> from gluon.tools import Auth, Crud, Service, PluginManager, >>>>>>>> prettydate >>>>>>>> auth = Auth(db) >>>>>>>> crud, service, plugins = Crud(db), Service(), PluginManager() >>>>>>>> >>>>>>>> db.define_table('companies', >>>>>>>> Field('name', 'string', >>>>>>>> required=True, >>>>>>>> requires=IS_NOT_EMPTY(), >>>>>>>> label=LABEL(T("Naziv"), >>>>>>>> _for="companies_name")), >>>>>>>> Field('url_sufix', 'string', >>>>>>>> required=True, >>>>>>>> requires=IS_NOT_EMPTY(), >>>>>>>> unique=True, >>>>>>>> label=LABEL(T("Url-sufix"), >>>>>>>> _for="companies_url_sufix")), >>>>>>>> Field('logo', 'upload', >>>>>>>> label=LABEL(T("Logo"), >>>>>>>> _for="companies_logo")), >>>>>>>> Field('deleted', 'boolean')) >>>>>>>> >>>>>>>> >>>>>>>> auth.settings.extra_fields['auth_user'] = [Field('deleted', >>>>>>>> 'boolean', default=False), >>>>>>>> Field('company_id', >>>>>>>> 'reference companies', requires=IS_IN_DB(db, db.companies.id, >>>>>>>> '%(name)s'))] >>>>>>>> >>>>>>>> ## create all tables needed by auth if not custom tables >>>>>>>> auth.define_tables(username=False, signature=False) >>>>>>>> >>>>>>>> Is there any way i could have my companies definition in >>>>>>>> /companies/companies.py but still do this. >>>>>>>> >>>>>>>
-- --- 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. For more options, visit https://groups.google.com/groups/opt_out.