Skip to main content
 首页 » 编程设计

python之django中的负整数

2024年08月29日27shangdawei

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