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.


Reply via email to