NDB验证器属性字段

2024-03-29 05:37:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我为我的ndb stringProperties生成了一个自定义验证器,为我的网站剔除恶意代码。在

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

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

  return stripped

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

^{pr2}$

如果我print(err)我得到:

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

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

编辑:Dmitry给出了最重要的一半答案-为了在我通过.u name属性后访问错误对象的值,我需要使用:

str(err.args[0])

Tags: 属性value网站emaildef错误errndb
1条回答
网友
1楼 · 发布于 2024-03-29 05:37:02

您可以通过_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

更新:您还可以通过设置

^{pr2}$

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

相关问题 更多 >