1

我在App Engine中創建了一個名爲「Chair」的NDB模型。該模型將具有名稱如「藍色椅子」和「紅色椅子」的實體。但是,我希望用戶能夠以多種語言/區域設置存儲主題屬性值。具有多種語言的實體的Python App Engine體系結構

,我已經發現迄今將被稱爲「language_parent」椅子對象和另一個名爲「語言」字符串字段上有一個ndb.KeyProperty()的最佳方法。關鍵屬性然後可以查找原始主席實體。

這是對這類情況最好的架構?

+0

或者你可以有一個語言字符串屬性的選擇! – pnv 2015-04-01 07:07:41

+0

這個問題還不夠清楚...請提供您已經定義的NDB模型類的代碼示例,然後我可以給您進一步的建議 – 2015-04-01 15:06:40

回答

0

假設這是對希望的語言顯示的名字,這將是最好有存儲在實體本身的任何語言的字符串。例如,您可以在對的格式屬性名稱:

name-<ISO 639-5 code> 

哪裏ISO 639-5是針對語言3 letter(阿爾法-3)編碼標準。這意味着英文名稱將被存儲在名爲'name-eng'的屬性和德文名稱'name-gem'中。 'name'本身可以保留爲原始/默認/本地語言的名稱,所以如果沒有選擇語言,您總是可以直接顯示值。

當您檢索的實體,您可以直接獲取的語言特性設計(如果存在的話),或者在開始的屬性名稱與循環「的名字 - 」找到所有可用的語言。

有了NDB,你需要使用ndb.Expando class。您可以使用特殊的_properties屬性獲取屬性列表。