我有一个名为fab的变量和一个Django查询集。如下,
fab = self.request.GET.get('fab')
和我的查询集,
queryset_df = Table1.objects.filter(Q(fab=int(fab)) | Q(fab=int(0+fab))).values_list('masks').distinct()
如我所见,我想在我的Q中在fab前面追加零,因为有时fab会以整数值出现,有时会出现0。当我尝试按+
添加时,它返回了一个错误,例如unsupported operand type(s) for +: 'int' and 'unicode'
。知道为什么吗?提前致谢。
答案 0 :(得分:1)
你应该在连接之前将0转换为unicode或字符串。
fab = "0" + fab
您不能将unicode变量与整数连接,也不能将字符串与整数或浮点数连接,因此您需要将其转换为正确的类型。
答案 1 :(得分:1)
听起来你的逻辑错了,
您要么强制将整数强制转换为CharField
,要么尝试将字符串强制转换为IntegerField
。如果它是前者,那么你总是会为了得到正确的结果而不得不施展价值,如果是后者则领先的0是毫无意义的。
您应该尝试使用正确的字段类型,它甚至可以帮助您进行模型的验证。