On Tue, Jan 4, 2011 at 9:45 AM, mdipierro <mdipie...@cs.depaul.edu> wrote:
> ok, in trunk.

Wow, don't you sleep? =)


As I am using and learning web2py, I've been reading its source-code
to understand the "magic" under the hood and to make a better use of
it. I am not confident yet to write my own patches, but I hope I can
start to contribute with something soon.


Fabiano.



On Tue, Jan 4, 2011 at 9:45 AM, mdipierro <mdipie...@cs.depaul.edu> wrote:
> ok, in trunk.
>
> On Jan 3, 8:34 pm, Fabiano <fabianoeng...@gmail.com> wrote:
>> Ok. By the way, If I may suggest, it would be a nice feature, and backward
>> compatible. As the id is an implied column and you must specify it explicit
>> when making references, I think it it would be even more consistent to
>> specify a table, the id would be implicit in both cases.
>>
>> Regards,
>>
>> On Monday, January 3, 2011 11:23:46 PM UTC-2, mdipierro wrote:
>>
>> > The error is in the example. IS_IN_DB *never* accepted a table as
>> > second argument.
>> > Sorry for the confusion. Will fix the example.
>>
>> > Massimo
>>
>> > On Jan 3, 6:25 pm, Fabiano - deStilaDo <fabian...@gmail.com>
>> > wrote:
>> > > Hi,
>>
>> > > from validators.py:
>>
>> > >  342 class IS_IN_DB(Validator):
>> > >  343     """
>> > >  344     example::
>> > >  345
>> > >  346         INPUT(_type='text', _name='name',
>> > >  347               requires=IS_IN_DB(db, db.table, zero=''))
>> > >  348
>> > >  349     used for reference fields, rendered as a dropbox
>> > >  350     """
>>
>> > > But I can't use the documented syntax: IS_IN_DB(db, db.table). I had
>> > > to use explicit db.table.id as argument.
>>
>> > > It looks like the current code (1.91.6) does not accept a table as
>> > > argument. Apparently, it cannot figure out that when you specify a
>> > > table instead of a field it should use the table's id field. It relies
>> > > on the field representation as string to extract the field name,
>> > > splitting it by dots, as shows line 371 from the class' constructor:
>>
>> > >  370         self.field = field
>> > >  371         (ktable, kfield) = str(self.field).split('.')
>>
>> > > Wouldn't be better to test the argument with something like isinstance()
>> > first?
>>
>> > > Sorry if I misunderstood something, but I think that if this is not a
>> > > bug, then the documentation should be updated.
>>
>> > > I also didn't check the code for IS_NOT_IN_DB(), but I guess this
>> > > class may have the same issue.
>>
>> > > Regards,
>>
>> > > Fabiano.
>>
>>

Reply via email to