我使用的是與python 2.7和webapp2框架的appengine。我是而不是使用ndb.model。appengine多對多的字段更新值和查找有效
我有以下型號:
class Story(db.Model);
name = db.StringProperty()
class UserProfile(db.Model):
name = db.StringProperty()
user = db.UserProperty()
class Tracking(db.Model):
user_profile = db.ReferenceProperty(UserProfile)
story = db.ReferenceProperty(Story)
upvoted = db.BooleanProperty()
flagged = db.BoolenProperty()
用戶可以給予好評和/或國旗的故事,但只有一次。因此我想出了上述模型。 現在,當用戶點擊upvote
鏈接,在數據庫上我嘗試看看,如果用戶還沒有投票的,所以我會盡力做到以下幾點:
與他的id來獲取用戶實例作爲
up = db.get(db.Key.from_path('UserProfile', uid))
然後拿到故事爲例說明如下
s_ins = db.get(db.Key.from_path('Story', uid))
現在是,檢查是否存在基於這兩個
Tracking
如果是那就不要轉允許投票,否則允許他投票並且更新跟蹤實例。
什麼是最便捷的方式獲取給出的user_profile
和story
一個id(db.key().id()
)一個Tracking
實例?
什麼是被給保存一個Tracking
模型用戶配置文件ID和故事ID最便捷的方式?
有沒有更好的方法來實現跟蹤?
可以ü請詳細說明(STR(story.id)+ 「 - 」 +'STR(user.id),** PARAMS )' – whatf
你可以使用任意的字符串,所以只需通過將用戶標識附加在一起即創建一個,即「1234-890123」。檢查參數文檔get_or_insert()以獲取參數(並且還需要驗證是否創建了新實體,或者獲取是否成功)。 – dragonx