def ql_don_hang_tao_don_moi_detail(ma_hd,page=1): if not current_user.is_authenticated or current_user.ma_loai_nguoi_dung != 2: return redirect(url_for('log_in', next=request.url)) form = Form_tim_kiem_nhap_hang() hoa_don = dbSession.query(Hoa_don).filter(Hoa_don.ma_hoa_don == ma_hd).first() don_hang = dbSession.query(Don_hang).filter(Don_hang.ma_hoa_don == ma_hd).all() query = BaseQuery(San_pham, dbSession) page_filter = query.paginate(page,10,False) thong_bao = '' if form.validate_on_submit() and form.noi_dung.data != '': ten_sp = form.noi_dung.data.strip().lower() if ten_sp.isdigit(): page_filter = query.filter_by(ma_san_pham = int(ten_sp)).paginate(page,10,False) else: page_filter = query.filter_by(ten_san_pham = ten_sp).paginate(page,10,False) if len(page_filter.items) == 0: thong_bao = 'Không tìm thấy sản phẩm!' return render_template('Quan_ly/QL_don_hang/Chi_tiet_don_hang.html',don_hang = don_hang, thong_bao = thong_bao, page_filter = page_filter, form = form, hoa_don = hoa_don)
def filter_by(self, **kwargs): ''' 由于是做软删除,所以记录仍在,只是标记成已删除 业务中查询是必然是没被删除的条目,故必须有status==1,为了避免每次查询时写这个条件,覆盖框架的filter_by方法 :param kwargs: :return: ''' if "status" not in kwargs: kwargs["status"] = 1 # return super().filter_by(**kwargs) # 根据mro(基于拓扑排序)顺序搜索有此方法的父类。写起来方便,但不利于阅读,因为多重继承和继承链的存在,不知道到底是哪个。最好用调用非绑定父类的明确写法。 return BaseQuery.filter_by(self, **kwargs)
def get_filtered_query(self, query: BaseQuery, **kwargs) -> BaseQuery: """Filter query using query parameters""" return query.filter_by(**kwargs)