更新烧瓶更新路由中的多个字段

时间:2019-03-04 16:36:39

标签: python-3.x flask

我有一个用烧瓶制作的小应用程序。我正在尝试使更新路线代码干燥器。因此,我可以在用户自己的帖子中选择大约10个字段进行更新。有人可以朝着正确的方向轻推我吗,我知道它应该很容易解决,但是有一段日子。因此,我希望创建一个小的函数来代替10行。当前代码如下:

@app.route("/post/<int:post_id>/update", methods=['GET', 'POST'])
@login_required
def update_post(post_id):
    post = Post.query.get_or_404(post_id)
    if post.author != current_user:
        abort(403)
    form = PostForm()
    if form.validate_on_submit():
        if form.picture.data:
            picture_file = save_recpic(form.picture.data)
            post.recipe_img = picture_file
        post.title = form.title.data
        post.description = form.description.data
        post.howto = form.howto.data
        post.ethnicity = form.ethnicity.data
        post.course = form.course.data
        post.vegetarian = form.vegetarian.data
        post.vegan = form.vegan.data
        post.nuts = form.nuts.data
        post.shellfish = form.shellfish.data
        post.meat = form.meat.data
        post.cook_time = form.cook_time.data
        for i in range (len(post.ingredients)):
            post.ingredients[i].name = form.ingredient[i].data
        db.session.commit()
        flash('Your recipe has been updated!', 'success')
        return redirect(url_for('post', post_id=post.id))

因此,我没有遵循上面的10来做一个函数。

def update_fields(form, post):
    fields = ['title', 'description', 'howto']
    for item in fields:
        form.item.data = post.item
    return form.item.data

感谢您的帮助。

0 个答案:

没有答案