def food_edit(id=None): """ 编辑菜品页面 """ form = FoodForm() # 实例化ScenicForm类 form.cate_id.choices = [(v.id, v.name) for v in Category.query.all()] # 为cate_id添加属性 food = Food.query.get_or_404(int(id)) # 根据ID查找菜品是否存在 if request.method == "GET": # 如果以GET方式提交,获取所有菜品信息 form.cate_id.data = food.cate_id if form.validate_on_submit(): # 如果提交表单 data = form.data # 获取表单数据 food_count = Food.query.filter_by(name=data["name"]).count() # 判断标题是否重复 # 判断是否有重复数据 if food_count == 1 and food.name != data["name"]: flash("菜品已经存在!", "err") return redirect(url_for('admin.food_edit', id=id)) # 属性赋值 food.name = data["name"] food.cate_id = data["cate_id"] db.session.add(food) # 添加数据 db.session.commit() # 提交数据 flash("修改菜品成功!", "ok") return redirect(url_for('admin.food_edit', id=id)) # 跳转到编辑页面 return render_template("admin/food_edit.html", form=form, food=food) # 渲染模板,传递变量
def food_add(): """ 添加菜品页面 """ form = FoodForm() # 实例化form表单 form.cate_id.choices = [(v.id, v.name) for v in Category.query.all()] # 为cate_id添加属性 if form.validate_on_submit(): data = form.data # 判断菜品是否存在 food_count = Food.query.filter_by(name=data["name"]).count() # 判断是否有重复数据。 if food_count == 1 : flash("菜品已经存在!", "err") return redirect(url_for('admin.food_add')) # 为Scenic类属性赋值 food = Food( name=data["name"], cate_id = data["cate_id"], ) db.session.add(food) # 添加数据 db.session.commit() # 提交数据 flash("添加美食成功!", "ok") # 使用flash保存添加成功信息 return redirect(url_for('admin.food_add')) # 页面跳转 return render_template("admin/food_add.html", form=form) # 渲染模板