I can't resolve this ticket in mhy app. I try to insert 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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.