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 <[email protected]> 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...