Hi!

I use Version 1.94.6 (2011-03-27 18:20:38).

I have in db:
-------------------------
db.define_table( 'mail_domain',
                                                        Field( 'domainname', 
'string',
                                                                                
label = 'Domain név',
                                                                                
requires = IS_NOT_EMPTY()
                                                                                
),
                                                        signature,
                                                        migrate = 
settings.migrate,
                                                        )
db.define_table( 'mail_domain_alias',
                                                        Field( 
'mail_domain_id', db.mail_domain,
                                                                                
label = 'Domain név',
                                                                                
requires = IS_IN_DB( db, db.mail_domain.id, '%
(domainname)s' ),
                                                                                
*********writable = False,*********
                                                                                
),
                                                        Field( 'alias', 
'string',
                                                                                
label = 'Aliasz',
                                                                                
requires = IS_NOT_EMPTY()
                                                                                
),
                                                        signature,
                                                        migrate = 
settings.migrate,
                                                        )
--------------

controller:

----------------
def domain():
        form = crud.update( db.mail_domain, request.args( 0 ) )
        return dict( form = form )
def domainalias():
        db.mail_domain_alias.mail_domain_id.default = session.domainname_id
        form = crud.update( db.mail_domain_alias, request.args( 0 ) )
        return dict( form = form )
def setdomain():
        session.domainname_id = request.args( 0 )
        session.domainname = db( db.mail_domain.id ==
session.domainname_id ).select( db.mail_domain.domainname ).first().domainname
        redirect( URL( 'default', 'index' ) )
-----------------

If the session.domainname_id is set to a valid mail_domain record ID,
than the crud in domainalias shows the reference field as number and
not as domainname string.

But if I remove the writable=False in mail_domain_alias table's
mail_domain_id field than I have a dropdown menu with the right record
selected as domainname and not as ID number.

I think the right behavior would be if I set the writable = True that
I would see the right record not as ID but as %(domainname)s

Reply via email to