2

我正在尝试在 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 开始。

谢谢

4

1 回答 1

3

从 url(你的id这里)捕获的参数作为字符串注入

在开始使用它之前你需要强制它

就像是

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

更新(re:空白字符串)

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

>>> "foo" * 3
'foofoofoo'

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

>>> "foo" * -1
''

或者在你的情况下:

>>> "12" * -1
''
>>> int("12") * -1
-12
于 2013-05-19T14:39:25.663 回答