def post(self): category_id = self.request.get_range('category_id') category = MenuCategory.get_by_id(category_id) if not category: self.abort(400) item = MenuItem(title=self.request.get('title')) item.description = self.request.get('description') if self.request.get('price'): price = float(self.request.get('price')) item.price = int(round(price * 100)) item.kal = self.request.get_range('kal') if self.request.get('volume'): item.volume = float(self.request.get('volume')) if self.request.get('weight'): item.weight = float(self.request.get('weight')) item.sequence_number = category.generate_sequence_number() item.put() # it is need to get id in saving image if self.request.get('image_file') or self.request.get('picture'): if self.request.get('image_file'): new_url = get_new_image_url('MenuItem', item.key.id(), image_data=str(self.request.get('image_file'))) if new_url: item.picture = new_url elif self.request.get('picture'): new_url = get_new_image_url('MenuItem', item.key.id(), url=self.request.get('picture')) if new_url: item.picture = new_url if item.picture: item.icon = get_new_image_url('MenuItemIcon', item.key.id(), url=item.picture, size=ICON_SIZE) item.category = category.key if not self.request.get('restriction_on'): for venue in Venue.query().fetch(): item.restrictions.append(venue.key) item.put() self.redirect('/company/menu/item/list?category_id=%s' % category_id)