属性XXXX不是python GAE中的多行异常

时间:2010-01-19 19:35:35

标签: python google-app-engine google-cloud-datastore

我有一个简单的模型对象

profilename = db.StringProperty()

当我得到一个包含“Some More”的字符串并尝试

  

它在模型中 它抛出异常

  

属性profilename不是多行

空间是否与换行相当,或者我错过了什么?它是

  

put ting

表示没有空格的单个字符串。

1 个答案:

答案 0 :(得分:4)

检查是在应用程序级别完成的,特别是在StringProperty.validate中 - 有问题的代码(您可以在SDK的源代码中找到ext / db / init .py): / p>

if not self.multiline and value and value.find('\n') != -1:
  raise BadValueError('Property %s is not multi-line' % self.name)

所以除非\n 确实已经进入您传入的value,否则无法触发它。为了帮助您调试问题,使用

logging.info('value is: %r', value)

在给你问题的put之前 - 你在日志中看到了什么? %r格式说明符显示了字符串的repr,因此您将能够观察到那里不应该出现的令人讨厌的\n,并且从该信息中调试这个问题。