我正在运行一个 Pylons 项目并遇到了这个奇怪的问题。提交表单时,我可以选择添加徽标(简单的 .png)。徽标在 FieldStorage 实例中传递。我尝试评估徽标是否与此一起发送:

if request.params.get('logo'):
    do x

但是,即使有徽标,它也始终评估为 False。如果我打印 request.params 我得到 UnicodeMultiDict([('logo', FieldStorage('logo', u'tux.png'))])

我用以下方法解决了它:
if not request.params.get('logo') == None:
    do x

我不明白为什么这行得通,而第一个例子却没有。

最佳答案

这很有趣,不知何故 FieldStorage 对象解析为 false。

编写以下内容是完全合法的(稍微简单一点):

if request.params.get('logo') is not None:
    # do x

关于即使有对象,Python .get() 也不会评估为 True?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9327597/

10-13 06:44