我整改代码的时候,好不容易把Follow删干净了,却发现Collect数据表与Follow数据表出了一个相同的问题
(只不过这个问题是Follow的冰山一角)
于是我一看。数据表里本来有一列叫id,现在被删掉了,原因是继承了djask的Model类,id在这个类里面已经定义了。
我仔细想想,既然是id报错了,那么一定是id那里出了问题。
于是我第一步是将Collect的id一列加上。由于本来并没有一个叫id的列,很显然我这样的行为是会报错的。
后来发现,create_at和updated_at都成功地继承了。我觉得是因为本来不存在id列的数据表现在多了id导致的问题。包括本来没有id的Follow。
于是我自己动手造轮子把Djask的Model重新写了一遍,只不过换了名字去掉了id。
后来发现问题更大了,本来还有47个测试能过,现在一个都过不去。
我开始焦头烂额了。
后来我注意到了一个问题。
这是Djask源码:id = sa.Column(sa.Integer, primary_key=True)
这是Flog源码:collector_id = db.Column(db.Integer, db.ForeignKey("user.id"), primary_key=True)
我们是不是定义了两个primary_key?
于是我把之前造的轮子一行一行注释掉,然后删掉了collector_id里面的primary_key=True。
测试tm竟然通过了。
我tm造这个轮子有何用?!!!!
Itachi
Admin 2022-01-29T23:51:33Z心疼你一分钟...
唉,看来我在Flog和Djask里挖的坑有点多呀
Itachi
Admin 2022-01-29T23:53:48Z忘了告诉你,那里就是我在live share里说改好了但没测试就不知怎么卡掉线了的地方。
本来我想自己处理自己挖的坑的,谁知道,竟然...