Flask-msearch python, добавление msearch на многие ко многим таблицам
Я работаю на python с базой данных postgres, у меня есть две таблицы, в которых есть отношения многие ко многим, и третья таблица, в которой сохраняются отношения, мне нужно применить flask-msearch к таблице отношений таким образом, чтобы он выбирал и осуществлял поиск в обеих таблицах и дать результирующий вывод, я реализовал на одной таблице, он работает нормально там, но не работает во многих отношениях многих
Вот моя модель, которая работает правильно
class JobpostJobpost(db.Model):
__tablename__ = 'jobpost_jobpost'
__searchable__ = ['company_name']
id = db.Column('job_id', Integer, primary_key=True)
company_name = db.Column(String(255))
& для поиска я должен использовать этот запрос
JobpostJobpost.query.msearch(query,fields=['company_name'])
это дает точный результат, но когда я использую его для нескольких таблиц, это дает ошибку здесь, я мой код модели для многопользовательских
Класс TblDegreeSpecilizationRelation(db.Model): __tablename__ = 'tbl_degree_specilization_relation' __searchable__ = ['tbl_suggestion_degrees.name','tbl_suggestion_degrees.tags'] #,'tbl_suggestion_degree_specilization.name','tbl_suggestion_degree_specilization.tags' id = db.Column('id', Integer, nullable=False, primary_key=True) степень_ид = db.Column ('степень_ид', ForeignKey(u'tbl_suggestion_degrees.id', ondelete=u'CASCADE')) specilization_id = db.Column('specilization_id', ForeignKey(u'tbl_suggestion_degree_specilization.id', ondelete=u'CASCADE'))
1 ответ
Я решил эту проблему, я использовал имя таблицы вместе с именем.column, я изменил его как, Модель
class TblDegreeSpecilizationRelation(db.Model):
__tablename__ = 'tbl_degree_specilization_relation'
__searchable__ = ['degree.name','degree.tags', 'specilization.name', 'specilization.tags'] # ,'tbl_suggestion_degree_specilization.name' ,'tbl_suggestion_degree_specilization.tags'
id = db.Column('id', Integer, nullable=False, primary_key=True)
degree_id = db.Column('degree_id', ForeignKey(u'tbl_suggestion_degrees.id', ondelete=u'CASCADE'))
specilization_id = db.Column('specilization_id', ForeignKey(u'tbl_suggestion_degree_specilization.id', ondelete=u'CASCADE'))
degree = relationship(u'TblSuggestionDegrees',backref=db.backref(
'post', uselist=False), uselist=False)
specilization = relationship(u'TblSuggestionDegreeSpecilization',backref=db.backref(
'post', uselist=False), uselist=False)
Сейчас работает нормально