本文整理汇总了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)
示例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 = '新建')
示例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))
示例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)
示例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))