我想創建一個基本的枚舉類,它本身從db.Model繼承。這個想法是創建幾個幫助函數,這些函數可用於枚舉類的任何後代。這些屬性可能在一定程度上延伸,但是我可以在基類枚舉類(例如「Name」)中聲明幾個常見屬性。是否有一種處理App Engine枚舉模型的標準方式?在python中爲Google應用程序引擎創建枚舉模型類的最佳方式是什麼?
0
A
回答
2
看來,你將不得不編寫自己的屬性類類(你可以擴展db.IntegerProperty)。如何做到這一點Nick Johnson's ChoiceModel class is an example:
This works by mapping each choice to an integer. The choices must be hashable
(so that they can be efficiently mapped back to their corresponding index).
Example usage:
>>> class ChoiceModel(db.Model):
... a_choice = ChoiceProperty(enumerate(['red', 'green', 'blue']))
... b_choice = ChoiceProperty([(0,None), (1,'alpha'), (4,'beta')])
You interact with choice properties using the choice values:
>>> model = ChoiceModel(a_choice='green')
>>> model.a_choice
'green'
>>> model.b_choice == None
True
>>> model.b_choice = 'beta'
>>> model.b_choice
'beta'
(鏈接的代碼,並引述的評論是在Apache許可證下發布;版權所有2011尼克·約翰遜。)
+0
歡迎來到堆棧溢出!請在答案中展開鏈接的相關部分。如果鏈接中斷,這個答案也是如此,這意味着它將來無法幫助任何人。否則,您的答案可能會被刪除。 –
相關問題
- 1. 在Rails中爲引擎創建引擎的最佳方式是什麼?
- 2. C#創建多個類使用的枚舉的最佳方式是什麼?
- 3. 什麼是創建交互式應用程序原型的最佳方式?
- 4. 在django中創建「歷史」類型模型的最佳方式是什麼?
- 5. 創建「完全」模塊化ZF應用程序的最佳方式是什麼?
- 6. 在Cocoa中創建另一個應用程序的最佳方式是什麼?
- 7. 什麼是創建CoreData模型設計的最佳方式?
- 8. 什麼是爲ios應用程序創建FAQ頁面的最佳方式
- 9. 爲web應用程序創建主從配置的最佳方式是什麼?
- 10. 在django中爲這種情況創建模型的最佳方式是什麼?
- 11. 什麼是創建移動應用程序的最佳方法
- 12. 在Python中創建「runner」腳本的最佳方式是什麼?
- 13. 在Moose中創建類屬性的最佳方式是什麼?
- 14. 創建CMS程序的最佳方式是什麼
- 15. 什麼是配置/優化谷歌應用程序引擎應用程序的最佳方式?
- 16. 用應用程序錯誤創建文件的最佳方式是什麼?
- 17. 什麼是創建異步的Web應用程序的最佳方式
- 18. 爲python應用程序創建Web界面的最佳策略是什麼?
- 19. flex:創建多窗口Web應用程序的最佳方式是什麼?
- 20. 什麼是同時創建iPhone和iPad應用程序的最佳方式?
- 21. 在iOS應用程序中創建表單的最佳方法是什麼?
- 22. 在MVC模型中引用用戶的最佳方式是什麼?
- 23. 什麼是Windows應用程序中的Google應用程序引擎sdk目錄?
- 24. 創建公共信息模型的最佳方法是什麼?
- 25. 在iphone應用程序中創建表單的最佳方式
- 26. 什麼是在現有的3D引擎上構建遊戲的最佳方式
- 27. 什麼是創建RIM應用程序的最佳語言?
- 28. 在log4net中爲每個類創建日誌的最佳方式是什麼?
- 29. 使用Django數據模型創建值對象的最佳方式是什麼?
- 30. 在python中爲Google應用引擎網站創建一個系統屬性集合的最佳方式是什麼?
不知道這是你在找什麼,但ProtoRPC的NDB的消息屬性包括EnumProperty:https://developers.google.com/appengine/docs/python/ndb/properties#msgprop – Sologoub
我在查找解決方案時看到了這一點;不幸的是,這不是我所需要的。我需要一個完整的枚舉類,我可以編寫專門的方法。 – Trevor
您可能會覆蓋新的領域;枚舉不是那麼受歡迎。可能值得你自己解決,並在你的解決方案中回到這裏。 –