The following code has been working for months:
e_and_o_policy = app_tables.agents_e_and_o_policies.add_row(agent=user,
policy_upload=policy_upload,
policy_number=policy_number,
carrier=carrier,
coverage_amount=float(coverage_amount),
aggregate_amount=float(aggregate_amount),
coverage_start_date=coverage_start_date,
coverage_end_date=coverage_end_date,
coverages=coverages,
active=True,
uuid=str(uuid.uuid4()),
created_by=me,
created_at=datetime.datetime.now(anvil.tz.tzutc())
)
is now returning the following error:
anvil.tables.TableError: Column 'coverages' is a liveObjectArray - cannot set it to a liveObjectArray
First attempt to adjust code to see what might be going on:
e_and_o_policy = app_tables.agents_e_and_o_policies.add_row(agent=user,
policy_upload=policy_upload,
policy_number=policy_number,
carrier=carrier,
coverage_amount=float(coverage_amount),
aggregate_amount=float(aggregate_amount),
coverage_start_date=coverage_start_date,
coverage_end_date=coverage_end_date,
active=True,
uuid=str(uuid.uuid4()),
created_by=me,
created_at=datetime.datetime.now(anvil.tz.tzutc())
)
print('coverages: {}'.format(repr(coverages)))
new_coverages = []
for coverage in coverages:
print('coverage: {}'.format(coverage['name']))
new_coverages += app_tables.ins_coverages.get(name=coverage['name'])
e_and_o_policy['coverages'] = new_coverages
yields this output and error:
coverages: [<LiveObject: anvil.tables.Row>, <LiveObject: anvil.tables.Row>, <LiveObject: anvil.tables.Row>, <LiveObject: anvil.tables.Row>]
coverage: Health
coverage: Indexed/Fixed Annuity
coverage: Life
coverage: Medicare
anvil.tables.TableError: Column 'coverages' is a liveObjectArray - cannot set it to a simpleObject
second edit to try to determine the issue:
e_and_o_policy = app_tables.agents_e_and_o_policies.add_row(agent=user,
policy_upload=policy_upload,
policy_number=policy_number,
carrier=carrier,
coverage_amount=float(coverage_amount),
aggregate_amount=float(aggregate_amount),
coverage_start_date=coverage_start_date,
coverage_end_date=coverage_end_date,
active=True,
uuid=str(uuid.uuid4()),
created_by=me,
created_at=datetime.datetime.now(anvil.tz.tzutc())
)
print('coverages: {}'.format(repr(coverages)))
for coverage in coverages:
print('coverage: {}'.format(coverage['name']))
if e_and_o_policy['coverages'] is None:
e_and_o_policy['coverages'] = [app_tables.ins_coverages.get(name=coverage['name'])]
else:
e_and_o_policy['coverages'] += app_tables.ins_coverages.get(name=coverage['name'])
yields the following output and error:
coverages: [<LiveObject: anvil.tables.Row>, <LiveObject: anvil.tables.Row>, <LiveObject: anvil.tables.Row>, <LiveObject: anvil.tables.Row>]
coverage: Health
coverage: Indexed/Fixed Annuity
anvil.tables.TableError: All elements of a table-row list must be rows from the same table
This seems to be something wrong with Anvil itself. The code has been working, nothing has changed, I can edit the row in the dev environment and link to the desired rows without any errors. Am I missing something?