当前位置: 首页> 娱乐> 明星 > 贵阳网站设计企业_网页游戏交易平台有哪些_百度点击软件还有用吗_爱站网seo查询

贵阳网站设计企业_网页游戏交易平台有哪些_百度点击软件还有用吗_爱站网seo查询

时间:2025/7/12 10:48:09来源:https://blog.csdn.net/hnmpf/article/details/144672602 浏览次数:0次
贵阳网站设计企业_网页游戏交易平台有哪些_百度点击软件还有用吗_爱站网seo查询

背景:

flask-admin框架中提供的模型视图默认是显示表实体中的所有列表数据,如果想通过某种条件限制初始列表数据,那么久需要重写一些方法才能实现。

材料:

制作:

视图源码:

    def get_query(self):return super(MyAiConfigView, self).get_query().filter(AiConfig.status == 0)

效果:

1、过滤前

2、过滤后

经验:

1、实现初始化过滤,我们可以想到的和百度上搜到的一定是重写def get_list(self, page, sort_field, sort_desc, search, filters, page_size=20) 来实现,这种方法的确可行,但这样处理不当会破坏原

    # def get_list(self, page, sort_field, sort_desc, search, filters, page_size=20):#     query = self.get_query()#     count_query = self.get_count_query() if not self.simple_list_pager else None#     query = query.all()#     return None, query

始的配置项,这一点可以通过源码看出

                 execute=True, page_size=None):"""Return records from the database.:param page:Page number:param sort_column:Sort column name:param sort_desc:Descending or ascending sort:param search:Search query:param execute:Execute query immediately? Default is `True`:param filters:List of filter tuples:param page_size:Number of results. Defaults to ModelView's page_size. Can beoverriden to change the page_size limit. Removing the page_sizelimit requires setting page_size to 0 or False."""# Will contain join paths with optional aliased objectjoins = {}count_joins = {}query = self.get_query()count_query = self.get_count_query() if not self.simple_list_pager else None# Ignore eager-loaded relations (prevent unnecessary joins)# TODO: Separate join detection for query and count query?if hasattr(query, '_join_entities'):for entity in query._join_entities:for table in entity.tables:joins[table] = None# Apply search criteriaif self._search_supported and search:query, count_query, joins, count_joins = self._apply_search(query,count_query,joins,count_joins,search)# Apply filtersif filters and self._filters:query, count_query, joins, count_joins = self._apply_filters(query,count_query,joins,count_joins,filters)# Calculate number of rows if necessarycount = count_query.scalar() if count_query else None# Auto joinfor j in self._auto_joins:query = query.options(joinedload(j))# Sortingquery, joins = self._apply_sorting(query, joins, sort_column, sort_desc)# Paginationquery = self._apply_pagination(query, page, page_size)# Execute if neededif execute:query = query.all()return count, query

2、在源代码学习中发现了本文探讨的新大陆---get_query(self) ,下面是源码中针对该函数的例子

                class MyView(ModelView):def get_query(self):return super(MyView, self).get_query().filter(User.username == current_user.username)

经过实地验证,效果理想 

关键字:贵阳网站设计企业_网页游戏交易平台有哪些_百度点击软件还有用吗_爱站网seo查询

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: