gpt4 book ai didi

python - NDB 验证器 Prop 字段

转载 作者:太空宇宙 更新时间:2023-11-03 11:03:01 28 4
gpt4 key购买 nike

我为我的 ndb stringProperties 推出了一个自定义验证器,以去除我网站的恶意代码。

def stringValidator(prop, value):
lowerValue = value.lower()
stripped = str(utils.escape(lowerValue))

if stripped != lowerValue:
raise datastore_errors.BadValueError(prop)

return stripped

在其他地方,我捕获了该错误并将失败返回给客户端。我希望能够返回验证失败的属性类型。

except datastore_errors.BadValueError as err:

如果我print(err) 我得到:

StringProperty('email', validator=<function stringValidator at 0x1079e11b8>)

我看到这个 StringProperty 包含我要返回的属性的名称:'email'。我如何提取它?

编辑:德米特里给了我最重要的一半答案——为了在我传递 ._name 属性后访问错误对象的值,我需要使用:

str(err.args[0])

最佳答案

您可以通过_name 属性获取属性的名称。

from google.appengine.ext import ndb

def stringValidator(prop, value):
lowerValue = value.lower()
stripped = 'bla'

if stripped != lowerValue:
raise datastore_errors.BadValueError(prop._name)

return stripped

class Foo(ndb.Model):
email = ndb.StringProperty(validator=stringValidator)

Foo(email='blas') # raises BadValueError: email

更新:您还可以通过设置使用“人性化”的属性名称

email = ndb.StringProperty(validator=stringValidator, verbose_name='E-mail')

在属性定义中,然后通过_verbose_name属性获取。

关于python - NDB 验证器 Prop 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27497559/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com