Yes, but the foreign key here is many to one, not one to one.  (I
guess I should have been more clear:
 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")
     db.table2.insert(name = "Some name2", fk_id = fk.id, field2="some value2")
     db.table2.insert(name = "Some name3", fk_id = fk.id, field2="some value3")
     db.table2.insert(name = "Some name4", fk_id = fk.id, field2="some value4")

On Fri, Jun 4, 2010 at 8:00 AM, mr.freeze <[email protected]> wrote:
> The insert function will return the id.
> fk = db.fk_table.insert(name="The Foreign Key")
>
> 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...

Reply via email to