Flask和Flask-admin的页面部分用到了bootstrap。开源软件的最大天坑就是版本问题,另外一个就是测试问题。
一个开源软件大多引入了多个其他开源库,少则几个,多则几十上百个。如果软件版本不兼容就会出现各种奇怪的问题,解决这个问题的方法一般是不更新开源库,一直用相同版本开发,实际安装应用时采用虚拟环境或者库本地化方法,具体可以参考我们之前的文章。
测试问题是指大多数开源软件都没有经过严格的测试,一般处于“大问题没多少,小问题没完没了”的状态。当然有一些开源项目经过严格测试,如centos,progresql之类。一般经过严格测试的软件非常稳定,但版本更新相对会慢很多。
我们在德数WMS开源项目
开发中,意外出现了一个bug。真的很意外,之前都是好好的。如下图,Active对应的是一个checkbox,
不知道出问题那天发了什么,然后就变成了:
Active应该还是checkbox,点击还是能改属性,但显示的不正确。
问题出现在年前几天,找了很久也没有找到问题的解决方法。但是我们定位到了出错的位置在flask-admin中的lib.html文件Forms块。
年后突然来了灵感,我们把bootstrap5的参数写进了bootstrap3的代码中,问题就解决了。不知道为什么,反正就变回去了。
form-control参数改成form-control-sm或form-control-lg都会显示正确的checkbox.