我正在尝试在 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)
这是我的看法。 这段代码有效,但是,如果我取消注释 multiply,我的浏览器中没有任何内容。我看不到我的负 ID。哪里错了?
如果我取消注释 get_object_404,我有一个:
invalid literal for int() with base 10: ''
这就是我尝试 int() 的原因。
这个问题看起来很简单,我也不明白为什么。我从 Django 开始。
谢谢
请您参考如下方法:
从 url 捕获的参数(这里是你的 id)作为字符串注入(inject)
你需要在开始使用它之前强制它
有点像
def getRelation(request, id):
id = int(id)
# the rest of your view
更新(回复:空白字符串)
python 允许您通过重载乘法运算符来重复字符串
>>> "foo" * 3
'foofoofoo'
当您尝试将一个字符串(包含您的 ID,但作为一个字符串)与 -1 相乘时,您会得到“-1 个副本”,它返回一个空字符串
>>> "foo" * -1
''
或者在你的情况下:
>>> "12" * -1
''
>>> int("12") * -1
-12
