我是flask/sqlalchemy的新手,我一直在尝试使用过滤器来拒绝POST事件,因为我的配方数据库中已经存在一个资源。在
因此,我想检查对于给定的用户(id),是否已经存在一个recipename。我这样做的方法是:
exists = db.session.query(Recipe).filter_by(rname=recipename, id=id).scalar()
这似乎不起作用,但如果您按照我的调试进行操作,应该是这样的:
在我的代码中,我对它进行了分解,并添加了以下行:
^{pr2}$rname=测试后的第一次尝试:
1 <__main__.Recipe object at 0x103cff490>
2 None
3 None
这是有意义的,因为只有用户id应该返回非零响应,因为配方还没有发布。在
rname=试验的第二次试验:
1 <__main__.Recipe object at 0x103cff350>
2 <__main__.Recipe object at 0x103cff390>
3 None
如预期,(1)和(2)不是无,因为rname=test现在也存在。但为什么(3)仍然没有返回?在
当我删除.scalar()off print语句3时,查询看起来是正确的:
SELECT recipes.id AS recipes_id, recipes.rname AS recipes_rname, recipes.customer_id AS recipes_customer_id, recipes.date AS recipes_date, recipes.done AS recipes_done
FROM recipes
WHERE recipes.rname = :rname_1 AND recipes.id = :id_1
我也可以从postgres数据库中选择行。在
任何帮助都将不胜感激!在
目前没有回答
相关问题 更多 >
编程相关推荐