Error come from :
https://github.com/web2py/web2py/blob/63bb4a7e8a39f466f6269e2f98c7b741d001def9/gluon/sqlhtml.py#L648

And here :
https://github.com/web2py/web2py/blob/63bb4a7e8a39f466f6269e2f98c7b741d001def9/gluon/sqlhtml.py#L657

The widget can't use the same field name...

There is already a ticket on github about that :
https://github.com/web2py/web2py/issues/940


Can be reproduce with this code :

# model
db.define_table('person',
                Field('name', unique=True, requires=IS_NOT_IN_DB(db,'
person.name')),
                Field('country', 'string'),
                Field('age', 'integer'))

db.define_table('thing',
                Field('name', 'string'),
                Field('persona', 'reference person', requires=IS_IN_DB(db, '
person.id', '%(name)s')),
                Field('personb', 'reference person', requires=IS_IN_DB(db, '
person.id', '%(name)s'))
                     )

db.thing.persona.widget = SQLFORM.widgets.autocomplete(request,
db.person.name, id_field=db.person.id)
db.thing.personb.widget = SQLFORM.widgets.autocomplete(request,
db.person.name, id_field=db.person.id)


# controller
def create():
    form = SQLFORM(db[request.args(0)])
    form.process(detect_record_change=True)
    if form.record_changed:
        pass
        # do something
    elif form.accepted:
        pass
        # do something else
    else:
        pass
        # do nothing
    return dict(form=form)

You need to pass : person or thing as argument 0

Richard

On Tue, Feb 2, 2016 at 3:32 PM, Richard Vézina <ml.richard.vez...@gmail.com>
wrote:

> If you can pack a dummy app to help us reproduce the problem it could
> help...
>
> Richard
>
> On Tue, Feb 2, 2016 at 3:31 PM, Richard Vézina <
> ml.richard.vez...@gmail.com> wrote:
>
>> Pierre,
>>
>> You crop the interresting part... after the etc....
>>
>> The error is surely coming from the jQuery which for some reason don't
>> get generated properly by the widget...
>>
>> Richard
>>
>> On Tue, Feb 2, 2016 at 3:29 PM, Richard Vézina <
>> ml.richard.vez...@gmail.com> wrote:
>>
>>> Did you try to set the type to these fields?
>>>
>>> db.define_table('thing',
>>>                 Field('name'),
>>>                 Field('persona', 'reference person'),
>>>                 Field('personb', 'reference person'))
>>>
>>> On Tue, Feb 2, 2016 at 3:10 PM, Pierre <theognis0...@gmail.com> wrote:
>>>
>>>> In fact Yes
>>>>
>>>>
>>>> the second input replaces the first :
>>>>
>>>> personb replaces persona and personb ends up empty
>>>>
>>>> --
>>>> Resources:
>>>> - http://web2py.com
>>>> - http://web2py.com/book (Documentation)
>>>> - http://github.com/web2py/web2py (Source code)
>>>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>>>> ---
>>>> 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/d/optout.
>>>>
>>>
>>>
>>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
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/d/optout.

Reply via email to