Yep! Thank you. I knew there would be a more idiomatic way of writing it, just wasn't sure what it would be.
On Wed, Jun 9, 2010 at 12:27 PM, mdipierro <mdipie...@cs.depaul.edu> wrote: > You can rewrite > > if db(fk_table.id > 0).count() == 0: > db.fk_table.insert(name="The Foreign Key") > if db(table2.id > 0).count() == 0: > fk = db(db.fk_table.name == "The Foreign Key").select()[0] > db.table2.insert(name = "Some name", fk_id = fk.id, field2="some > value") > > as > > fk = db(db.fk_table.name == "The Foreign > Key").select(limitby=(0,1)).first() > if fk: > fk_id=fk.id > else: > fk_id=db.fk_table.insert(name="The Foreign Key") > if db(table2.id > 0).count() == 0: > db.table2.insert(name = "Some name", fk_id = fk_id, field2="some > value") > > Is this what you asked? > > On Jun 4, 9:48 am, Doug Warren <doug.war...@gmail.com> wrote: >> Hi, >> >> I defined all my tables in my model file and want to have a few >> hundred rows of default foreign keys to maintain 3rd normal form. So >> I have things in my code such as: >> >> if db(fk_table.id > 0).count() == 0: >> db.fk_table.insert(name="The Foreign Key") >> >> if db(table2.id > 0).count() == 0: >> fk = db(db.fk_table.name == "The Foreign Key").select()[0] >> db.table2.insert(name = "Some name", fk_id = fk.id, field2="some value") >> >> I'm sure there's a better way to get the id of the foreign key than >> doing select()[0].id, but I'm not sure what it is...