Здравствуйте, есть приложение на Python, PostgreSQL, PyQt5(UI)
Нужно исправить поиск.
Есть таблица в которую заносятся товары из базы данных postgreSQL.
Я сделал поиск и при вводе значений в QLineEdit тоесть,
я пишу
Но если я ввожу в поиск
Но в товаре написано Балка двутавровая - вес 1 м.п 10
И если я ввожу
Как можно это сделать или исправить?
Вот сам код поиска:
Нужно исправить поиск.
Есть таблица в которую заносятся товары из базы данных postgreSQL.
Я сделал поиск и при вводе значений в QLineEdit тоесть,
я пишу
Балка
и он выводит мне весь список из таблицы в котором есть слово балка (Screenshot_1.jpg).Но если я ввожу в поиск
Балка 10
то он не находит ничего (Screenshot_2.jpg) а он должен вывести только балка 10.Но в товаре написано Балка двутавровая - вес 1 м.п 10
И если я ввожу
балка 10
то он должен выводить все товары где есть такое в названии.Как можно это сделать или исправить?
Вот сам код поиска:
Python:
class Main_Metall(QWidget, Ui_main_window_ui):
def __init__(self):
super(Main_Metall, self).__init__()
self.w = Main_filter()
self.setupUi(self)
self.btn_load.clicked.connect(self.populate)
self.btn_search.clicked.connect(self.SearchModels)
Main_Metall.populate(self)
# вывод товаров в таблицу
def populate(self):
con = psycopg2.connect()
cur = con.cursor()
cur.execute("""SELECT item_uid, item, unit, "type", price, "number" FROM public.list """)
self.tableWidget.setRowCount(0)
for row, form in enumerate(cur):
self.tableWidget.insertRow(row)
for column, item in enumerate(form):
self.tableWidget.setItem(row, column, QTableWidgetItem(str(item)))
con.close()
# поиск
def SearchModels(self):
# поле для ввода le_search
name_search = self.le_search.text()
for row in range(self.tableWidget.rowCount()):
matching_items = self.tableWidget.findItems(name_search, Qt.MatchContains)
if matching_items:
item = self.tableWidget.item(row, 1)
self.tableWidget.setRowHidden(row, name_search not in item.text().lower())