当前位置: 首页>>代码示例>>Python>>正文


Python TopicForm.validate_on_submit方法代码示例

本文整理汇总了Python中forms.TopicForm.validate_on_submit方法的典型用法代码示例。如果您正苦于以下问题:Python TopicForm.validate_on_submit方法的具体用法?Python TopicForm.validate_on_submit怎么用?Python TopicForm.validate_on_submit使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在forms.TopicForm的用法示例。


在下文中一共展示了TopicForm.validate_on_submit方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: topic_create

# 需要导入模块: from forms import TopicForm [as 别名]
# 或者: from forms.TopicForm import validate_on_submit [as 别名]
def topic_create(project_id):
    project = Project.query.get(project_id)
    if not current_user.in_team(project.team_id):
        abort(404)
    form = TopicForm(current_user, project, request.form.getlist('attachment'))
    if form.validate_on_submit():
        topic = form.saveTopic()
        if topic is not None:
            flash(u'保存成功')
            return redirect(url_for('topic_detail', topic_id=topic.id))
        else:
            flash(u'保存失败,请联系管理员', 'error')
    return render_template('project/topic_create.html', project=project, form=form)
开发者ID:Red54,项目名称:Sophia,代码行数:15,代码来源:app.py

示例2: new

# 需要导入模块: from forms import TopicForm [as 别名]
# 或者: from forms.TopicForm import validate_on_submit [as 别名]
def new():
    form = TopicForm()
    flash(form.board_id.data)
    if form.validate_on_submit():
        u = User.query.filter_by(id = g.user.id).first()
        topic = Topic(board_id=form.board_id.data, category=form.category.data, author=u, title=form.title.data, content=form.content.data)
        db.session.add(topic)
        db.session.commit()
        flash("发表成功")
        return redirect(request.args.get("next") or url_for("index"))
    form.board_id.data = request.args.get('board_id', '')
    return render_template('new.html',
        form = form,
        title = '新建')
开发者ID:satnosun,项目名称:webbz,代码行数:16,代码来源:views.py

示例3: forum

# 需要导入模块: from forms import TopicForm [as 别名]
# 或者: from forms.TopicForm import validate_on_submit [as 别名]
def forum(page=1):
    # Нужная страница
    if request.args.get('page'):
        page = int(request.args.get('page'))

    # Разбиение на страницы
    pagination = Pagination(page, TOPIC_PER_PAGE, ForumTopic.query.count())

    # Форма для постинга сообщений
    form_topic = TopicForm()
    form_message = MessageForm()

    # Если отправлена форма постинга
    if request.method == 'POST' and form_topic.validate_on_submit() and form_message.validate_on_submit():
        # Данные из формы c применением форматирования
        data_topic = form_topic.topic.data
        data_message = message_format(form_message.message.data, True)
        # Создание темы и обновление счётчиков у пользователя
        new_topic = ForumTopic(name=data_topic, author_id=current_user.id)
        current_user.message_count += 1
        current_user.topic_count += 1
        db.session.add(new_topic)
        # Коммит в этом месте нужен, чтобы появился ID
        db.session.commit()
        # Создание сообщения
        new_mes = ForumMessage(topic_id=new_topic.id, author_id=current_user.id, text=data_message)
        db.session.add(new_mes)
        db.session.commit()
        return(redirect(url_for('topic', topic_id=str(new_topic.id))))

    # Выборка всех тем с счётчиком сообщений для каждой
    # Подзапрос
    all_topics_subq = db.session.query(
        ForumMessage.topic_id, func.count(ForumMessage.id).label('mes_count')).\
        group_by(ForumMessage.topic_id).\
        subquery()
    # Основной запрос
    all_topics = db.session.query(
        ForumTopic, all_topics_subq.c.mes_count).\
        join(all_topics_subq, ForumTopic.id == all_topics_subq.c.topic_id).\
        order_by(ForumTopic.time_last.desc()).all()

    # Вернуть страницу
    return(render_template('forum.html',
        user=current_user,
        all_topics=all_topics,
        form_topic=form_topic,
        form_message=form_message,
        pagination=pagination))
开发者ID:smartpony,项目名称:forum,代码行数:51,代码来源:views.py

示例4: new_topic

# 需要导入模块: from forms import TopicForm [as 别名]
# 或者: from forms.TopicForm import validate_on_submit [as 别名]
def new_topic():
    """
    Starts a new thread creating a new Topic and corresponding first Post in the database.
    """
    form = TopicForm(request.form)
    if form.validate_on_submit():
        topic = Topic(subject=form.subject.data)
        post = Post(message=form.message.data, ip_address=request.remote_addr, name=form.name.data,
                    email=form.email.data)
        topic.first_post = post
        post.topic = topic
        db.session.add(topic)
        db.session.commit()
        return redirect(url_for('view_topic', topic_id=topic.id))
    return render_template('new_topic.html', form=form)
开发者ID:ruipacheco,项目名称:fruitshow,代码行数:17,代码来源:views.py

示例5: mail_write

# 需要导入模块: from forms import TopicForm [as 别名]
# 或者: from forms.TopicForm import validate_on_submit [as 别名]
def mail_write(reply=None):
    # Форма для нового сообщения
    form_recepient = RecepientForm()
    form_subject = TopicForm()
    form_message = MessageForm()

    # Если отправлена форма с новым сообщением
    if request.method == 'POST' and \
        form_recepient.validate_on_submit() and \
        form_subject.validate_on_submit() and \
        form_message.validate_on_submit():
            # Данные из формы c применением форматирования
            data_recipient = form_recepient.recepient.data
            data_subject = form_subject.topic.data
            data_message = message_format(form_message.message.data, True)
            # От кого и кому отправлено сообщение
            sender_id = current_user.id
            recipient_id = User.query.filter_by(login=data_recipient).first()
            if recipient_id:
                recipient_id = recipient_id.id
            else:
                return(render_template('info.html',
                    user=current_user,
                    text='No such user'))
            # Создание сообщений в отправленных у посылающего и
            # во входящих у того, кому адресовано письмо
            new_message = Mailbox(sender_id=current_user.id,
                owner_id=sender_id,
                directory=1,
                recipient_id=recipient_id,
                subject=data_subject,
                text=data_message,
                read=True)
            db.session.add(new_message)
            new_message = Mailbox(sender_id=current_user.id,
                owner_id=recipient_id,
                directory=0,
                recipient_id=recipient_id,
                subject=data_subject,
                text=data_message)
            db.session.add(new_message)
            db.session.commit()
            # Перейти в отправленные
            return(redirect(url_for('mailbox', box='sent')))

    # Заполнение полей надо делать после проверки отправки, иначе
    # form_message.message.data останется =quote и не перезапишется
    # теми данными, которые ввёл пользователь

    # Если это ответное сообщение
    reply = request.args.get('reply')
    recepient = ''
    subject = ''
    if reply:
        previous_message = Mailbox.query.get(reply)
        recepient = previous_message.sender.login
        subject = 'Re: ' + previous_message.subject
        text = message_format(previous_message.text, False)
        quote = ''
        for line in text.split('\n'):
            if line[:3] == '>> ':
                quote += '>> ' + line + '\n'
            else:
                for i in range(0, len(line), 50):
                    quote += '>> ' + line[i:i+50] + '\n'
        quote += '\n'
        form_message.message.data = quote

    # Все пользователей для выбора в качестве адреса
    all_users = User.query.all()

    return(render_template('mail_write.html',
        user=current_user,
        recepient=recepient,
        subject=subject,
        form_recepient=form_recepient,
        form_subject=form_subject,
        form_message=form_message,
        all_users=all_users))
开发者ID:smartpony,项目名称:forum,代码行数:81,代码来源:views.py


注:本文中的forms.TopicForm.validate_on_submit方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。