这里三行个断点的代码,第一个断点和第三个断点查询语句有问题,第一个是我自己加的逻辑,如果当前用户对同isbn的书籍有过请求书籍,则不能继续提交,在写这断代码的时候,发现不生效,所以通过断点,检查了一下生成的SQL语句
发现在使用pending的情况下,会变成xxxxx from drift where false = 1
但是这里传进model里的base重写的query的filter_by方法时有值
继续掉试下去发现到clauses的时候 pending这个值会消失
我估计是这里有问题导致了where false = 1这个错误
但是我不知道这是什么原因到了这里pending会消失掉,在查询条件中,如果我把pending=枚举的条件完成去掉,则sql条件都可正常打印
下面是枚举的代码
下面是去掉pending条件打印出的SQL语句
视屏中的
success_receive_count = Drift.query.filter_by(requester_id=self.id, pending=PendingStatus.Success).count()也是同样的问题,查询条件是were false = 1.查询出来是0,所以代码不影响执行,不调看不出来
不知道问题出在什么地方,请老师指教
7月老师深入浅出剖析Flask核心机制,和你一起探讨Python高级编程
了解课程