2010-01-19 67 views
3

我有物業XXXX是不是在蟒蛇多行例外GAE

profilename = db.StringProperty() 

一個簡單的模型對象,當我得到一個字符串「一些更」,並嘗試

它在模型 它拋出異常

屬性名稱不是多行

是否等於換行符或我錯過了某些東西?這是

認沽婷

爲不帶空格的單詞串。

+0

「Some More」字符串實際上是「Some More \ n」嗎?您可能無法看到換行符,但它可能仍然存在。 – 2010-01-19 20:49:12

+0

不,它沒有新行,實際上它是從一個較大的字符串中提取的,所以如果我更改stringproperty屬性multiline = true,它不會抱怨,但很奇怪,換行符不會有換行符 – dhaval 2010-01-19 21:40:07

回答

4

的被在應用層進行,特別是在StringProperty.validate支票 - 有問題的代碼(你可以在你的SDK的在內線/ DB/初始化的.py源找到)是:

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的位置,並從該信息中調試問題。

+0

。 Thx的輸入雖然,我會再次檢查,看看。 – dhaval 2010-01-20 07:08:50

+2

@dhaval,當然它不會抱怨多行字符串屬性的換行符 - 這就是多行是_about_ ;-)。 – 2010-01-20 16:11:54