我在App Engine中創建了一個名爲「Chair」的NDB模型。該模型將具有名稱如「藍色椅子」和「紅色椅子」的實體。但是,我希望用戶能夠以多種語言/區域設置存儲主題屬性值。具有多種語言的實體的Python App Engine體系結構
,我已經發現迄今將被稱爲「language_parent」椅子對象和另一個名爲「語言」字符串字段上有一個ndb.KeyProperty()的最佳方法。關鍵屬性然後可以查找原始主席實體。
這是對這類情況最好的架構?
我在App Engine中創建了一個名爲「Chair」的NDB模型。該模型將具有名稱如「藍色椅子」和「紅色椅子」的實體。但是,我希望用戶能夠以多種語言/區域設置存儲主題屬性值。具有多種語言的實體的Python App Engine體系結構
,我已經發現迄今將被稱爲「language_parent」椅子對象和另一個名爲「語言」字符串字段上有一個ndb.KeyProperty()的最佳方法。關鍵屬性然後可以查找原始主席實體。
這是對這類情況最好的架構?
假設這是對希望的語言顯示的名字,這將是最好有存儲在實體本身的任何語言的字符串。例如,您可以在對的格式屬性名稱:
name-<ISO 639-5 code>
哪裏ISO 639-5是針對語言3 letter(阿爾法-3)編碼標準。這意味着英文名稱將被存儲在名爲'name-eng'的屬性和德文名稱'name-gem'中。 'name'本身可以保留爲原始/默認/本地語言的名稱,所以如果沒有選擇語言,您總是可以直接顯示值。
當您檢索的實體,您可以直接獲取的語言特性設計(如果存在的話),或者在開始的屬性名稱與循環「的名字 - 」找到所有可用的語言。
有了NDB,你需要使用ndb.Expando class
。您可以使用特殊的_properties
屬性獲取屬性列表。
或者你可以有一個語言字符串屬性的選擇! – pnv 2015-04-01 07:07:41
這個問題還不夠清楚...請提供您已經定義的NDB模型類的代碼示例,然後我可以給您進一步的建議 – 2015-04-01 15:06:40