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.

Reply via email to