It works fine if I remove 'format=' 

db.t_project.f_parent_project.requires = IS_EMPTY_OR(IS_IN_DB(db,'
t_project.id',db.t_project._format))


--
Luc.


On Saturday, 1 December 2012 07:57:16 UTC, Luc Chase wrote:
>
> ########################################
> db.define_table('t_project',
>     Field('f_name', type='string',
>           label=T('Name')),
>     Field('f_parent_project', type='reference t_project',
>           label=T('Parent Project')),
>     Field('f_description', type='string',
>           label=T('Description')),
>     Field('f_start_on', type='date',
>           label=T('Start On')),
>     Field('f_colour', type='string',
>           label=T('Colour')),
>     Field('f_company_code', type='text',
>           label=T('Company Code')),
>     Field('f_status', type='boolean',
>           label=T('Status')),
>     auth.signature,
>     format='%(f_name)s',
>     migrate=settings.migrate)
>
> db.t_project.f_parent_project.requires = IS_EMPTY_OR(IS_IN_DB(db,'
> t_project.id',format=db.t_project._format))
>
> db.define_table('t_project_archive',db.t_project,Field('current_record','reference
>  
> t_project',readable=False,writable=False))
>
>
>
>
> On Friday, 30 November 2012 13:50:34 UTC, Anthony wrote:
>>
>> The format argument goes in the define_table() call -- is that where you 
>> have it?
>>
>> Anthony
>>
>> On Friday, November 30, 2012 1:58:09 AM UTC-5, Luc Chase wrote:
>>>
>>> Thanks for the suggestion.  I had tried something similar but got an 
>>> error and even with this I have an error referencing to the unexpected use 
>>> of 'format'.
>>>
>>> <type 'exceptions.TypeError'> __init__() got an unexpected keyword 
>>> argument 'format'VERSIONweb2py™(2, 2, 1, datetime.datetime(2012, 10, 
>>> 21, 16, 57, 4), 'stable')PythonPython 2.7: C:\Program 
>>> Files\Python\web2py_win\web2py\web2py.exeTRACEBACK
>>>
>>> 1.
>>> 2.
>>> 3.
>>> 4.
>>> 5.
>>>
>>> Traceback (most recent call last):
>>>   File "gluon/restricted.py", line 212, in restricted
>>>   File "C:/Program 
>>> Files/Python/web2py_win/web2py/applications/Timesheet/models/db_wizard.py" 
>>> <http://127.0.0.1:8000/admin/default/edit/Timesheet/models/db_wizard.py>, 
>>> line 40, in <module>
>>> TypeError: __init__() got an unexpected keyword argument 'format'
>>>
>>> ERROR SNAPSHOT [image: help]
>>>
>>> <type 'exceptions.TypeError'>(__init__() got an unexpected keyword 
>>> argument 'format')
>>>
>>> On Thursday, 29 November 2012 02:08:58 UTC, Massimo Di Pierro wrote:
>>>>
>>>> The problem is that it cannot assign the default validator unless the 
>>>> table is defined. You can do
>>>>
>>>> db.define_table('t_project',
>>>>     Field('f_name', type='string',
>>>>           label=T('Name')),
>>>>     Field('f_parent_project', type='reference t_project',
>>>>           label=T('Parent Project')),
>>>>     ....
>>>>     format='%(f_name)s',
>>>>     migrate=settings.migrate)
>>>>
>>>> db.t_project.f_name.requires = IS_EMPTY_OR(IS_IN_DB(db,'t_project.id
>>>> ',format=db.t_project._format))
>>>>
>>>> The last line will restore the dropdown.
>>>>
>>>>
>>>> On Wednesday, 28 November 2012 14:39:14 UTC-6, Jim S wrote:
>>>>>
>>>>> I'm seeing this as well.
>>>>>
>>>>> -Jim
>>>>>
>>>>>
>>>>> On Tuesday, November 27, 2012 12:09:18 PM UTC-6, Luc Chase wrote:
>>>>>>
>>>>>> If the reference is to a different table, the CRUD form renders the 
>>>>>> field as a list box allowing the user to select the record from the 
>>>>>> foreign 
>>>>>> table.  But as a self-join the CRUD form renders the field as a simple 
>>>>>> text 
>>>>>> box and it seems to create a default value of 0 when saved. Then, I 
>>>>>> think 
>>>>>> that causes the record to generate an error when viewed ( but not when 
>>>>>> edited).
>>>>>>
>>>>>>
>>>>>> I can post the entire models file if that would help.
>>>>>>  
>>>>>

-- 



Reply via email to