Пример #1
0
	def get_bookmark_of_user_id_for_write(user_id):
		#データストアから実体を読込(書き込み用)
		bookmark=None
		try:
			bookmark=db.Query(Bookmark,keys_only=True).filter("user_id =",user_id)
		except:
			return None
		
		count=bookmark.count(limit=2)
		if(count>=2):
			#keynameの設定でduplicateは起きなくなったはず
			logging.error("bookmark duplicate error user_id="+str(user_id))

			#もし起きる場合は古いデータなので以下で削除のこと
			#duplicate_bookmark=bookmark.fetch(2)
			#db.get(duplicate_bookmark[1]).delete()
			#logging.error("deleted duplicated one")

		if(count==0):
			#同じuser_idでduplicateが起きないようにするためにkey_nameを設定
			#昔のbookmarkにはkey_nameは設定していないので注意
			bookmark=Bookmark(key_name=BbsConst.KEY_NAME_BOOKMARK+user_id)
			bookmark.user_id=user_id
			bookmark.put()
		else:
			bookmark=bookmark.fetch(1)
			bookmark=db.get(bookmark[0])	#強い整合性を保証
		
		return ApiObject.set_list_if_empty(bookmark);