Маршрутизация нескольких представлений по одним и тем же шаблонам в коде колбы - PullRequest
0 голосов
/ 27 ноября 2018

Мне нужно указать два представления на одном шаблоне с разными именами форм, я проверяю этот код, но он не работает:

@home.route('/blogs/Article/<int:id>/<string:url_path>', methods=['GET'])
def show_article(id, url_path):
    add_article = False
    blog = Article.query.get_or_404(id)
    form = ArticleForm(obj=blog)
    if form.validate_on_submit():
        blog.titre = form.titre.data
        blog.url_path = form.url_path.data
        blog.writ_by = form.writ_by.data
        blog.body = form.body.data
        blog.date_creation = form.date_creation.data

        db.session.commit()        
        return redirect(url_for('home._blogs_'))    
    return render_template('home/blog.html', action="Edit", add_article=add_article, form=form, blog=blog, title="Edit blog")

### Вторые представления

@home.route("/article/<int:id_article>/comment", methods=["POST"])
def comment_post(id_article):    
    article = Article.query.get_or_404(id_article)
    form_comment = AddCommentForm()
    if form_comment.validate_on_submit():
        comment = Comment(
            body_comment_article = form_comment.body_comment_article.data, 
            posted_name = form_comment.posted_name.data ,
            date_creation =  datetime.datetime.now(),        
            id_articles=article.id)
        db.session.add(comment)
        db.session.commit()        
        flash("Your comment has been added to the article", "success")
        return redirect(url_for("home.show_article", id=article.id , url_path=article.url_path))    
    return render_template("/home/blog.html", title="Comment Post", add_comment=add_comment, form_comment=form_comment, article=article)

Код возвращает следующую ошибку:

UndefinedError: 'form_comment' is undefined

Не могли бы вы мне помочь, спасибо

1 Ответ

0 голосов
/ 27 ноября 2018

решение есть.в моих первых представлениях я передал form_comment и добавляю оператор if в свой шаблон {% if for_comment%} ... {% endif%}

@home.route('/blogs/Article/<int:id>/<string:url_path>', methods=['GET'])
def show_article(id, url_path):
    add_article = False
    blog = Article.query.get_or_404(id)
    form = ArticleForm(obj=blog)
    form_comment = AddCommentForm()
    if form.validate_on_submit():
        blog.titre = form.titre.data
        blog.url_path = form.url_path.data
        blog.writ_by = form.writ_by.data
        blog.body = form.body.data
        blog.date_creation = form.date_creation.data

        db.session.commit()        
        return redirect(url_for('home._blogs_'))    
    return render_template('home/blog.html', action="Edit", add_article=add_article, form=form,form_comment=form_comment, blog=blog, title="Edit blog")
...