表中数据varchar和float转化对filter结果的影响求助

来源:6-1 查询集介绍

qq_Isabella_1

2020-04-09 16:18

表中某字段比如time_cost类型为varchar,filter查询时筛选time_cost__gte='30'会导致结果不准,很多实际time_cost小于30的也被放入结果中,是和varchar和float转化有关系吗 怎么规避这种问题呢

写回答 关注

1回答

  • Jack
    2020-04-15 09:35:26

    不错,学习很细心。varchar是字符串类型,time_cost__gte='30'相当于字符串与字符串比较,不是数字大小的比较。python中字符串大小比较的问题,google一下。

    解决办法:把time_cost字段类型改成int类,也就是ORM中用IntergerField,然后time_cost__gte=30,引号就不要了,数字与数字比较。

全面掌握Django ORM

全面掌握Django ORM,以Django官方文档为依据,准确、权威。

11966 学习 · 41 问题

查看课程

相似问题