2015-11-03 27 views
1

我有一个名为fab的变量和一个Django查询集。具体如下,在Python中添加一个变量前面的0

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中的工厂门前零追加,因为有时晶圆厂是作为一个整数值,有时用0面前。当我尝试添加+时,它返回了一个错误,如unsupported operand type(s) for +: 'int' and 'unicode'。任何想法为什么?提前致谢。

+2

使用字符串:→''0'+ ...' –

+0

What * field * type是'fab'?如果它不是IntegerField,为什么不呢? – Sayse

回答

1

您应该在连接之前将0转换为unicode或字符串。

fab = "0" + fab 

不能连接与一个整数一个unicode变量,你也不能连接与整数或浮点数的字符串,所以你需要一个转换为正确的类型。

+0

工作。感谢Bas – vellattukudy

+0

没问题,如果它对您有帮助,您可以将其标记为答案,以便其他人知道解决方案。 –

1

这听起来像你的逻辑是错误的地方,

您可能是试图迫使一个整数为CharField,或者你正试图迫使字符串转换为IntegerField。如果它的前者,你总是会为了得到正确的结果而投入价值而挣扎,如果后者是领先的0则毫无意义。

您应该尝试使用正确的字段类型,它甚至可以帮助您进行模型验证。