Hello I have the following in models:
db.define_table('senders', Field('sender','string',length=80,label="Sender")) db.define_table('documents', Field('description','text',requires=IS_LENGTH(256,1),label="Description"), Field('header_date','date',label="Header Date"), Field('received_date','date',label="Received Date"), Field("sent_by",db.senders,label="Sent By",requires=IS_IN_DB(db, 'senders.sender'))) So I want some 'senders', with a description 'sender' and some 'documents'. Each 'documents' has one 'senders', a 'senders' has many 'documents'. I added the requres=IS_IN_DB to enable a SQLFORM to provide a drop down list of SENDERS when I create a new document. This works but ... We get this: <class 'sqlite3.IntegrityError'> FOREIGN KEY constraint failed When we create the DOCUMENT, even though it specifies a SENDER from the dropdown Is this because the drop down is senders.sender but the RI constraint is on senders.id ? I'm not a fan of surrogate keys, I must say. Traditionally I would have defined SENDERS as SENDER_CODE, SENDER_NAME and given a meaningful code, such as NWAT, Northumbrian Water instead of 1,Northumbrian Water which is what I have now. Anyway, what have I messed up in my model/form, please? I can't see how to change it to fix this Form is built with this controller code: @auth.requires_login() def newdocument(): form = SQLFORM(db.documents).process() if form.accepted: response.flash = 'new record inserted' dochead = {'documents.description':'Description', 'documents.header_date':'Header Date', 'documents.received_date':'Received Date', 'documents.sent_by':'Sender',} # and get a list of all documents records = SQLTABLE(db().select(db.documents.ALL), truncate=80, headers = dochead ) return dict(form=form, records=records) View: {{extend 'layout.html'}} <h1>Documents</h1> {{=form}} <h2>Current Documents</h2> {{=records}} Thanks for any assistance -- 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.