我正在尋找處理App Engine中類別的最智能/多種方式。我看到兩種方法:將類別輸入到Google App Engine中的方式不同
Google App Engine Data Store Model Reference Another Class
使用方法答:
companycategory = db.ReferenceProperty(mycategories, collection_name = 'categories')
從例子中的網址:
class Category(db.Model)
name = db.StringProperty(required=True)
city = db.ReferenceProperty(City, collection_name = 'categories')
和方式B:
companycategory = db.CategoryProperty(default="A", choices=["A", "AA", "B", "C"], required=True)
有沒有還有什麼要考慮的。 A使用一個表格和另一個似乎矯枉過正的對象模型,但方式B將文本放入字段中,這意味着錯字可能會很好地蔓延。將整數放入類別字段並手動引用是否有一種聰明的方法來執行其他任何操作?或者我用另一個模型/桌子咬子彈?
在此先感謝
@Dave:如果您剛剛開始新鮮,則可能需要考慮使用較新的NDB模塊來代替數據庫:https://developers.google.com/appengine/docs/python/ndb/。此外,由於您擔心輸入錯誤等,您可以爲所有有效的類別創建一個單獨的存儲,並根據輸入檢查輸入,以確保存儲的內容是適當的。 – Sologoub 2012-04-03 04:12:25
謝謝。我想我的一個複雜是Django框架。字符串的方式雖然不像按鍵那麼優雅,但對於這個用例來說很好。然而,我有Django模板的麻煩,我得到以下錯誤:'code'BadValueError:Property companycategory is ['B','i','o'];當我使用下面的代碼companycategory = db.StringListProperty(default =「Bio」,choices = [「Bio」,必須是['Bio','Pharm','I',''] 「Pharm」,「I」,「S」],required = True)'code' – Androidian 2012-04-03 09:39:36
@Dave:將default =「Bio」更改爲default = [「Bio」]。 StringListProperty需要一個字符串列表(即使是一個字符串的列表),但不是一個字符串。 – Albert 2012-04-04 02:41:11