def house_add(house_msg, userid): """ Добавляет/обновляет персональную страницу """ url = house_msg.url url_key = ndb.Key(Url, url) db_url = url_key.get() if db_url is None: # нет в таблице url, создать db_url = Url(cnt=0) db_url.key = url_key db_url.put() cnt = db_url.calc_cnt() house_key = ndb.Key(Url, url, House, userid) db_house = house_key.get() if db_house is None: db_url.cnt = cnt + 1 msg = u"добавлено в базу" else: db_url.cnt = cnt msg = u"обновлено" db_house = House(userid=userid, page_kind=1) #house если не задан db_house.key = house_key db_house.copy_from_message(house_msg) db_house.msg(msg) db_house.put() db_url.put() # update url count
def house_add(house_msg, userid): """ Добавляет/обновляет персональную страницу """ url = house_msg.url url_key = ndb.Key(Url, url) db_url = url_key.get() if db_url is None: # нет в таблице url, создать db_url = Url(cnt=0) db_url.key = url_key db_url.put() cnt = db_url.calc_cnt() house_key = ndb.Key(Url, url, House, userid) db_house = house_key.get() if db_house is None: db_url.cnt = cnt+1 msg = u"добавлено в базу" else: db_url.cnt = cnt msg = u"обновлено" db_house = House(userid=userid, page_kind=1) #house если не задан db_house.key = house_key db_house.copy_from_message(house_msg) db_house.msg(msg) db_house.put() db_url.put() # update url count
def tags_by_url(url_str, userid): check_url(url_str.lower()) url_key = ndb.Key(Url, url_str.lower()) q = House.query(ancestor=url_key).filter(House.userid != userid) tags_dict = {} for house in q.fetch(): for tag in house.tags: tags_dict[tag] = tags_dict[tag]+1 if tag in tags_dict else 1 # возвращаем сортированный массив пар (метка,количество_использований) return sorted(tags_dict.items(), key=lambda t: t[1], reverse=True)
def tags_by_url(url_str, userid): check_url(url_str.lower()) url_key = ndb.Key(Url, url_str.lower()) q = House.query(ancestor=url_key).filter(House.userid != userid) tags_dict = {} for house in q.fetch(): for tag in house.tags: tags_dict[tag] = tags_dict[tag] + 1 if tag in tags_dict else 1 # возвращаем сортированный массив пар (метка,количество_использований) return sorted(tags_dict.items(), key=lambda t: t[1], reverse=True)
def houses_by_user(userid): q = House.query(House.userid == userid) return [house for house in q.fetch(100)]