一个项目在本地测试挺正常,放到centos7上之后,运行就报如下错误:
ValueError at /user/search/
no signature found for builtin <built-in method count of list object at 0x7f96ff13f0c8>
网上搜索,没有搜索到有用的信息。后来反复测试,发现了问题原因:
原来是listview类返回到前端的数据记录集是 初始值 (datalist=[]),这导致前端页面上 属性调用count ({{ datalist.count }})出错。
以往函数或视图类中 datalist=[] 之后都会有一个 查询执行过程,本项目中设置了用户输入关键词后才执行查询,初始页面没有关键词信息,所以视图类中就没有执行查询操作,导致 datalist仍然是初始状态 [],这就使得前端调用属性 datalist.count出错。
不过奇怪的是:在本地pycharm中运行正常,放到服务器上才会报错。
以上问题的解决措施也很简单:
不用datalist=[]来初始化,而用 datalist = UserTable.objects.filter(id=0)的方式来初始化。因为 不存在id为0的数据,自然用户没有数据关键词时 就不会有数据列出来了。