though it may not be the preferred solution I resolved it by adding: adapter_args=dict(foreign_keys=False) to db = DAL('sqlite://storage.sqlite') in db.py
On Sunday, December 8, 2013 3:16:36 PM UTC+1, Ivan Gazzola wrote: > > I can't resolve this ticket in my app. I try to insert in > Pazienti_Consulenza from appadmin but i've always this error: > " > <class 'sqlite3.IntegrityError'> foreign key constraint failed > " > > This is my model: > > db.define_table('Nominativi', > Field('nome',notnull=True, represent=lambda nome:nome.title()), > Field('categoria',db.Categorie_Nominativi,default='1'), > Field('sesso',requires=IS_EMPTY_OR(IS_IN_SET(['maschio','femmina']))), > Field('mail',requires=IS_EMPTY_OR(IS_EMAIL(error_message=T('Inserire > Una Mail Valida')))), > Field('indirizzo'), > Field('localita', label='Località'), > Field('cap',requires=IS_EMPTY_OR(IS_LENGTH(5,5, > error_message=T('Inserire Un CAP valido')))), > Field('provincia',requires=IS_EMPTY_OR(IS_IN_SET(Elenco_Province, > zero=T('Selezionare una Provincia')))), > Field('codice_fiscale',length=20), > Field('partita_iva',length=20), > Field('data_di_nascita','date'), > Field('professione'), > Field('padre'), > Field('madre'), > Field('inviato_da'), > Field('id_precendente','integer'), > format=lambda > r:r.nome.title()+'-->'+db.Categorie_Nominativi(r.categoria)['categoria']) > > db.Nominativi.nome.filter_in = lambda value : w2p_encrypt(value,key=chiave) > db.Nominativi.nome.filter_out = lambda value : > w2p_decrypt(value,key=chiave) > db.Nominativi.mail.filter_in = lambda value : w2p_encrypt(value,key=chiave) > db.Nominativi.mail.filter_out = lambda value : > w2p_decrypt(value,key=chiave) > db.Nominativi.indirizzo.filter_in = lambda value : > w2p_encrypt(value,key=chiave) > db.Nominativi.indirizzo.filter_out = lambda value : > w2p_decrypt(value,key=chiave) > db.Nominativi.localita.filter_in = lambda value : > w2p_encrypt(value,key=chiave) > db.Nominativi.localita.filter_out = lambda value : > w2p_decrypt(value,key=chiave) > db.Nominativi.cap.filter_in = lambda value : w2p_encrypt(value,key=chiave) > db.Nominativi.cap.filter_out = lambda value : w2p_decrypt(value,key=chiave) > db.Nominativi.codice_fiscale.filter_in = lambda value : > w2p_encrypt(value,key=chiave) > db.Nominativi.codice_fiscale.filter_out = lambda value : > w2p_decrypt(value,key=chiave) > db.Nominativi.padre.filter_in = lambda value : > w2p_encrypt(value,key=chiave) > db.Nominativi.padre.filter_out = lambda value : > w2p_decrypt(value,key=chiave) > db.Nominativi.madre.filter_in = lambda value : > w2p_encrypt(value,key=chiave) > db.Nominativi.madre.filter_out = lambda value : > w2p_decrypt(value,key=chiave) > > db.Nominativi.categoria.requires=IS_IN_DB(db,'Categorie_Nominativi.id','%(categoria)s',zero=None) > db.Nominativi.categoria.represent = lambda id,row: row.categoria > db.Nominativi.nome.represent = lambda nome,row: nome.title() > > db.Nominativi.inviato_da.widget=SQLFORM.widgets.autocomplete(request,db.Nominativi.nome) > > db.define_table('Relazioni', > Field('nominativo',db.Nominativi,required=True,requires=[IS_IN_DB(db, > 'Nominativi.id')]), > Field('referente',db.Nominativi,required=True,requires=[IS_IN_DB(db, > 'Nominativi.id')]), > Field('tipo_relazione',label='Tipo di relazione')) > > db.Relazioni.tipo_relazione.widget = lambda field,value: \ > SQLFORM.widgets.string.widget(field,value,_placeholder="Inserire il > tipo di relazione") > > db.Relazioni.referente.widget=SQLFORM.widgets.autocomplete(request,db.Nominativi.nome,id_field= > db.Nominativi.id,limitby=(0,10), min_length=3) > > > db.define_table("Consulenze", > Field('dentista',db.Nominativi,required=True), > Field('data_inizio_collaborazione','date'), > Field('data_fine_collaborazione','date'), > Field('id_precedente','integer'), > format=lambda r:db.Nominativi(r.dentista)['nome']) > odontoiatri=db(db.Nominativi.categoria==2) > > db.Consulenze.dentista.requires=IS_IN_DB(odontoiatri,'Nominativi.id','%(nome)s') > > db.define_table("Pazienti_Consulenza", > Field('dentista',db.Consulenze, required=True), > Field('paziente',db.Nominativi,required=True, unique=True)) > > everything worked fine when I've added the table. > I can't see what is wrong in the last table ... > > Thx > -- 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/groups/opt_out.