def DocFromModels(rest_id, menu_id): # try: rest = Restaurant.get_by_id(rest_id) menu = Menu.get_by_id(menu_id) ui_profile = UIProfile.get_by_menu(menu) menuitems = MenuItem.get_by_menu(menu) grab_vars = lambda item: deepcopy(vars(item)["_entity"]) obj = {} obj["menu_id"] = menu.menu_id obj["restaurant_id"] = rest.restaurant_id obj["restaurant_name"] = rest.name obj["menu_name"] = menu.name obj["ui_profile"] = grab_vars(ui_profile) obj["ui_profile"]["menu"] = "null" obj["menuitems"] = {} for menuitem in menuitems: category = menuitem.category menu_item_dict = grab_vars(menuitem) menu_item_dict["menu"] = "null" if obj["menuitems"].has_key(category): obj["menuitems"][category].append(menu_item_dict) else: obj["menuitems"][category] = [menu_item_dict] return json.dumps(obj)