2
下面的完整工作示例可以在交互式控制檯中運行。將空列表分配給具有默認值的StringListProperty會導致實體具有默認值?
這是預期嗎?如果是這樣,我有兩個問題:
1)請在GAE文檔中說明其解釋位置。
2)請顯示db.Model
的模式,該模式在創建時默認爲某個屬性的填充列表,但仍然允許我們稍後分配空列表(或無)。
from google.appengine.ext import db
class TestClass(db.Model):
my_string_list = db.StringListProperty(default=['foo', 'bar'])
instance = TestClass()
instance.put()
print instance.my_string_list
#['foo', 'bar']
instance.my_string_list = []
instance.put()
print instance.my_string_list
#[]
instance2 = db.get(instance.key())
print instance2.my_string_list
#expected [], got ['foo', 'bar'] ???
奇怪的是,它周圍的東西看起來像是存儲在數據存儲中的一個空列表,但是當它讀回來時,它的默認值被放回。也許是GAE的錯誤?我會在問題跟蹤器 – someone1
上完成一個問題:https://code.google.com/p/googleappengine/issues/detail?id=9098&thanks=9098&ts=1364912386 – HorseloverFat
雖然這很奇怪,但通常不好主意可變對象作爲默認參數。 –