Made some changes to the code and broke it. After trying unsuccessfully to fix this for a while I need some other eyes on it. It’s a search triggered on the enter key.
Traceback:
Traceback (most recent call last):
File "G:\Projects\Python\GUI\wxPython\wxAccMan\wxAccMan.py", line 456, in search
self.ledger_results = controller.search_records(self.session,
File "G:\Projects\Python\GUI\wxPython\wxAccMan\controller.py", line 153, in search_records
ledger = convert_results(result)
File "G:\Projects\Python\GUI\wxPython\wxAccMan\controller.py", line 84, in convert_results
ledger = OlvLedger(record.id, record.itemDate,
AttributeError: 'str' object has no attribute 'id'
Convert for ObjectListView
def convert_results(results):
"""
Convert results to Olv objects
"""
print(f" Contoller.py convert_results: {results}")
ledgerItems = []
for record in results:
ledger = OlvLedger(record.id, record.itemDate,
record.description, record.budgetItem,
record.credit, record.debit, record.balance
)
ledger.append(ledgerItems)
print(f"convert_results: {ledgerItems}")
return ledgerItems
Search
if filter_choice == "Budget Item":
print('Budget Chosen')
qry = session.query(Ledger)
result = qry.filter(Ledger.budgetItem.contains('%s' % keyword)).all()
records = []
for record in result:
for item in record.budgetItem:
records.append(item)
result = records
elif filter_choice == "Date":
qry = session.query(Ledger)
result = qry.filter(Ledger.itemDate.contains('%s' % keyword)).all()
ledger = convert_results(result)
return ledger
Any thoughts are appreciated.