Я пытался заставить Sqlalchemy использовать функцию (расстояние Левенштейна), чтобы упорядочить результаты запроса, я попробовал некоторые идеи здесь и там, но ни одна из них не использует параметр, которого нет в Sqlalchemy. смоделируйте его самостоятельно, вот что я пытаюсь сделать:
communs=baladiya.query.filter_by(wilaya=wilaya).filter(baladiya.name.like('%{}%'.format(name))).order_by(jf.Levenshtein_Distance(searchstring,baladiya.name)).paginate(per_page=4,page=page)
Я использую этот метод, чтобы держать приложение хорошо структурированным и могу использовать объект paginate, если это вообще невозможно, есть ли способ создать пустой запрос, а затем продолжить добавление, используя мою собственную сортировку.
это модель баладия:
class baladiya(db.Model):
id = db.Column(db.Integer , primary_key=True)
name = db.Column(db.String(1000),unique=False , nullable=False)
postalcode = db.Column(db.String(10),unique=True, nullable=False)
posX = db.Column(db.String(20), nullable=True, default='16000')
posY = db.Column(db.String(20), nullable=True, default='16000')
wilaya= db.Column(db.Integer,unique=False, nullable=False)