在flask-admin中搜索非文本列 [英] Search on non-text column in flask-admin

查看:178
本文介绍了在flask-admin中搜索非文本列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个sqlalchemy模型:

I have a sqlalchemy model:

class Multicast(db.Model):
    __tablename__ = "multicast"
    id = Column(Integer, primary_key=True)
    addr = Column(Inet)
    name = Column(Unicode(65))

我需要通过"addr"字段进行搜索. 我无法以这种方式做到这一点:

I need to make search by "addr" field. I could not do it in this way:

class MulticastView(ModelView):
    column_searchable_list = ('name', 'addr',)
    column_filters = ('name', )
    model = Multicast

因为我有一个例外:只能搜索文本列.无法设置搜索"addr".我如何进行搜索?

Because i had an Exception: Can only search on text columns. Failed to setup search for "addr". How can i make this search?

推荐答案

我找到了一些解决方案.我在MulticastView中重写了get_list方法.我从ModelView复制了所有源代码,并在搜索条件代码中添加了一行:

I found some solution. I overrided get_list method in MulticastView. I copied all source code from ModelView and added a line in search criteria code:

filter_stmt.append(func.text(Multicast.addr).like(stmt))

有效!

这篇关于在flask-admin中搜索非文本列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆