本文整理汇总了Python中flaskbb.forum.models.Topic.get_topic方法的典型用法代码示例。如果您正苦于以下问题:Python Topic.get_topic方法的具体用法?Python Topic.get_topic怎么用?Python Topic.get_topic使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类flaskbb.forum.models.Topic
的用法示例。
在下文中一共展示了Topic.get_topic方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: post
# 需要导入模块: from flaskbb.forum.models import Topic [as 别名]
# 或者: from flaskbb.forum.models.Topic import get_topic [as 别名]
def post(self, topic_id, slug=None):
topic = Topic.get_topic(topic_id=topic_id, user=real(current_user))
form = self.form()
if not form:
flash(_("Cannot post reply"), "warning")
return redirect("forum.view_topic", topic_id=topic_id, slug=slug)
elif form.validate_on_submit():
post = form.save(real(current_user), topic)
return redirect(url_for("forum.view_post", post_id=post.id))
else:
for e in form.errors.get("content", []):
flash(e, "danger")
return redirect(
url_for("forum.view_topic", topic_id=topic_id, slug=slug)
)
示例2: get
# 需要导入模块: from flaskbb.forum.models import Topic [as 别名]
# 或者: from flaskbb.forum.models.Topic import get_topic [as 别名]
def get(self, topic_id, slug=None):
page = request.args.get("page", 1, type=int)
# Fetch some information about the topic
topic = Topic.get_topic(topic_id=topic_id, user=real(current_user))
# Count the topic views
topic.views += 1
topic.save()
# Update the topicsread status if the user hasn't read it
forumsread = None
if current_user.is_authenticated:
forumsread = ForumsRead.query.filter_by(
user_id=current_user.id,
forum_id=topic.forum_id).first()
topic.update_read(real(current_user), topic.forum, forumsread)
# fetch the posts in the topic
posts = Post.query.outerjoin(
User, Post.user_id == User.id
).filter(
Post.topic_id == topic.id
).add_entity(
User
).order_by(
Post.id.asc()
).paginate(page, flaskbb_config["POSTS_PER_PAGE"], False)
# Abort if there are no posts on this page
if len(posts.items) == 0:
abort(404)
return render_template(
"forum/topic.html",
topic=topic,
posts=posts,
last_seen=time_diff(),
form=self.form()
)
示例3: view_topic
# 需要导入模块: from flaskbb.forum.models import Topic [as 别名]
# 或者: from flaskbb.forum.models.Topic import get_topic [as 别名]
def view_topic(topic_id, slug=None):
page = request.args.get('page', 1, type=int)
# Fetch some information about the topic
topic = Topic.get_topic(topic_id=topic_id, user=current_user)
# Count the topic views
topic.views += 1
topic.save()
# fetch the posts in the topic
posts = Post.query.\
outerjoin(User, Post.user_id == User.id).\
filter(Post.topic_id == topic.id).\
add_entity(User).\
order_by(Post.id.asc()).\
paginate(page, flaskbb_config['POSTS_PER_PAGE'], False)
# Abort if there are no posts on this page
if len(posts.items) == 0:
abort(404)
# Update the topicsread status if the user hasn't read it
forumsread = None
if current_user.is_authenticated:
forumsread = ForumsRead.query.\
filter_by(user_id=current_user.id,
forum_id=topic.forum.id).first()
topic.update_read(current_user, topic.forum, forumsread)
form = None
if Permission(CanPostReply):
form = QuickreplyForm()
if form.validate_on_submit():
post = form.save(current_user, topic)
return view_post(post.id)
return render_template("forum/topic.html", topic=topic, posts=posts,
last_seen=time_diff(), form=form)