django中的负整数

时间:2013-05-19 14:28:15

标签: python django django-views

我正在尝试在postgresql数据库中进行查询。 我需要在查询之前将id乘以-1。

def getRelation(request,id):
    #id = id * -1
    #osmObject = get_object_or_404(PlanetOsmPolygon,osm_id=int(id))
    return HttpResponse(id)
    #return HttpResponse(osmObject.way.geojson)

这是我的看法。 但是,如果我取消对乘法的注释,则此代码可以正常工作,我的浏览器中没有任何内容。我看不出我的负面身份。错误在哪里?

如果我取消注释get_object_404,我有一个:

  

对于带有基数为10的int()的无效文字:''

这就是我尝试int()的原因。

这个问题似乎很简单,我不明白为什么。我从django开始。

由于

1 个答案:

答案 0 :(得分:3)

从网址捕获的参数(此处id)将作为字符串

注入

在开始使用

之前,你需要强制

类似

def getRelation(request, id):
    id = int(id)
    # the rest of your view

更新(re:空白字符串)

python允许您通过重载乘法运算符重复字符串

>>> "foo" * 3
'foofoofoo'

当你尝试将一个字符串(包含你的id,但是作为一个字符串)与-1相乘时,你得到“-1 copies”,它返回一个空字符串

>>> "foo" * -1
''

或在你的情况下:

>>> "12" * -1
''
>>> int("12") * -1
-12