I have this table

db.define_table('materia',
                Field('nome', 
requires=[IS_NOT_EMPTY(),IS_NOT_IN_DB(db,'materia.nome')]),
                Field('docente','reference auth_user'),
                
auth.signature,singular="Materia",plural="Materie",migrate='materia.table',
                format='%(nome)s')
db.materia.nome.requires=IS_NOT_IN_DB(db(db.materia.docente==request.vars.docente),db.materia.nome)

I have this function
def materie_docente():
    # recupero l'id del docente
    docente = request.args(0)
    # query per recuperare il nome  del docente
    query_nome_docente = db.auth_user.id == docente
    # recupero nome e cognome del docente
    row = 
db(query_nome_docente).select(db.auth_user.first_name,db.auth_user.last_name).first()
    #materie del docente
    query = (db.materia.docente == docente)
    db.materia.docente.default = docente
    db.materia.docente.readable = True
    db.materia.docente.writable = False
    # imposto la grid per far vedere le materie di quel docente
    exportcls = dict(csv_with_hidden_cols=False, html=False, json=False, 
tsv_with_hidden_cols=False, tsv=False)
    form = SQLFORM.grid(query, args=[docente], 
fields=[db.materia.nome],create=True, details=True, editable=True, 
deletable=True, maxtextlength=60, exportclasses = exportcls)
    
    return locals()


When I insert a new "materia" it can be inserted duplicated... it doesn't 
control is the materia.nome is still in the database.
I know maybe the reason....because request.vars.docente is not managed in 
the form. If I change db.materia.docente.writable from False to True is 
working but I don't want that the user change the field "docente". How to 
solve this problem?
Thank you

-- 
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