I have difficulty to understand your models because they are not in english
(sorry about that)... I will try to help anyway...

By the way you should put "," at the end of your lines like this :

Field('CD_CIDADAO',type='**string',notnull=True,label='**Matrícula')*,*

instead of :

*,*Field('CD_CIDADAO',type='**string',notnull=True,label='**Matrícula')

Because python will not understand, maybe web2py does, but it is not a good
pratice...

You use format =... But you don't use web2py fk fearture so format= can't
manage your reprensentation...

For example :

representante table field : CD_CIDADAO field definition should be :


Field('CD_CIDADAO',db.cidadao)

So CD_CIDADAO will be of type integer and store the id of the cidadao
table... That way web2py should generate a dropbox and use "format="
of cidadao table to  avoid displaying the id of the field that has no
meaning for end user... Then you will have to use represente=
for CD_CIDADAO field to make sure that on retreiving of the result you not
having the id instead of what you want the user to see...


db.representante.CD_CIDADAO.represent=lambda id, row:
db.cidadao(id).NM_CIDADAO


Hope it helps

Richard


On Mon, Dec 19, 2011 at 10:10 AM, Jose Carlos Junior <josec...@gmail.com>wrote:

> Please...I have some dificult in do this in web2py...as follow
>
> db.define_table("cidadao"
>     ,Field('CD_CIDADAO',type='id',
> **label='Cidadão(PK)')
>     ,Field('CD_MATRICULA',type='**integer',notnull=True,label='**
> Matrícula')
>     ,Field('NM_CIDADAO',type='**string',notnull=True,label='**Nome')
>     ,format = '%(NM_CIDADAO)s'
>     ,singular = 'cidadao'
>     ,plural = 'cidadaos'
>     ,migrate=False)
>
>
> db.define_table("**representante"
>     ,Field('ID_REPRESENTANTE',**type='id',readable=False)
>     ,Field('ID_CARGOS',type='**integer',notnull=True,label='**Cargo')
>     ,Field('CD_CIDADAO',type='**string',notnull=True,label='**Matrícula')
>     ,Field('DT_INCLUSAO',type='**datetime',notnull=True,label='**
> Inclusão')
>     ,Field('DT_EXCLUSAO',type='**datetime',notnull=False,label=**
> 'Exclusão')
>     ,Field('CD_TELEFONE',type='**string',notnull=True,label='**Telefone')
>     ,Field('CD_EMAIL',type='**string',notnull=True,label='**Email')
>     ,Field('CD_CELULAR',type='**string',notnull=False,label='**Celular')
>     ,migrate=False)
>
> db.representante.CD_CIDADAO.**requires = IS_IN_DB(db,
> 'cidadao.CD_CIDADAO', '%(CD_MATRICULA)s - %(NM_CIDADAO)s')
> db.representante.ID_CARGOS.**requires = IS_IN_DB(db, 'cargos.ID_CARGOS',
> '%(NOME)s')
>
> db.define_table("gtils_**representante"
>     ,Field('ID',type='id',**readable=False)
>     ,Field('ID_GTIL',readable=**True,label='GTIL')
>     ,Field('ID_REPRESENTANTE',**readable=True,label='**Representante')
>     ,Field('DT_INICIO',type='**datetime',notnull=True,label='**Início')
>     ,Field('DT_TERMINO',type='**datetime',notnull=False,label=**'Término')
>     ,migrate=False)
>
> db.gtils_representante.ID_**GTIL.requires = IS_IN_DB(db, 'gtils.ID_GTIL',
> '%(NOME)s')
>
> How can i fill  ID_REPRESENTANTE but show NM_CIDADAO (table cidadao) once
> i don't have this field in "representante" table...??  or how can i put a
> computed field in 'representant' table filled with the result  choice of
> the CD_CIDADAO. Thanks alot
>

Reply via email to