Beispiel #1
0
def new_post():
    """新建文章视图"""
    form = PostForm(request.form)
    if form.validate_on_submit():

        form.content.data = request.form['markdownEditor-html-code']
        form.categories.data = [Category.query.get(category_id) for category_id in form.categories.data]

        if not form.description.data:
            form.description.data = remove_html_tag(form.content.data)[0:150]

        if form.publish.data:
            with db.auto_commit():
                post = Post()
                post.set_attr(form.data)
                db.session.add(post)
            flash('文章已发布', 'success')

        if form.save.data:
            with db.auto_commit():
                post = Post()
                post.set_attr(form.data)
                post.published = False
                db.session.add(post)
            flash('文章已保存为草稿', 'success')

        return redirect(url_for('web.manage_post'))

    return render_template('admin/post_editor.html', form=form)
Beispiel #2
0
def edit_post(post_id):
    """
    编辑文章视图
    :param post_id: 文章 id
    """
    post = Post.query.get_or_404(post_id)
    form = PostForm(request.form)

    if form.validate_on_submit():
        form.content.data = request.form['markdownEditor-html-code']
        form.categories.data = [
            Category.query.get(category_id)
            for category_id in form.categories.data
        ]

        if not form.description.data:
            form.description.data = remove_html_tag(form.content.data)[0:150]

        if form.publish.data:
            with db.auto_commit():
                post.set_attr(form.data)
                post.published = True
                db.session.add(post)
            flash('文章已更新', 'success')

        if form.save.data:
            with db.auto_commit():
                post.set_attr(form.data)
                post.published = False
                db.session.add(post)
            flash('文章已保存为草稿', 'success')

        return redirect(url_for('web.manage_post'))

    if not form.errors:
        form.title.data = post.title
        form.categories.data = [category.id for category in post.categories]
        form.content_markdown.data = post.content_markdown
        form.description.data = post.description
        form.can_comment.data = post.can_comment

    return render_template('admin/post_editor.html', form=form, post=post)