本文整理汇总了Python中flaskbb.forum.models.Topic.save方法的典型用法代码示例。如果您正苦于以下问题:Python Topic.save方法的具体用法?Python Topic.save怎么用?Python Topic.save使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类flaskbb.forum.models.Topic
的用法示例。
在下文中一共展示了Topic.save方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_topic_save
# 需要导入模块: from flaskbb.forum.models import Topic [as 别名]
# 或者: from flaskbb.forum.models.Topic import save [as 别名]
def test_topic_save(forum, user):
"""Test the save topic method with creating and editing a topic."""
post = Post(content="Test Content")
topic = Topic(title="Test Title")
assert forum.last_post_id is None
assert forum.post_count == 0
assert forum.topic_count == 0
topic.save(forum=forum, post=post, user=user)
assert topic.title == "Test Title"
topic.title = "Test Edit Title"
topic.save()
assert topic.title == "Test Edit Title"
# The first post in the topic is also the last post
assert topic.first_post_id == post.id
assert topic.last_post_id == post.id
assert forum.last_post_id == post.id
assert forum.post_count == 1
assert forum.topic_count == 1
示例2: test_topic_merge_other_forum
# 需要导入模块: from flaskbb.forum.models import Topic [as 别名]
# 或者: from flaskbb.forum.models.Topic import save [as 别名]
def test_topic_merge_other_forum(topic):
"""You cannot merge a topic with a topic from another forum."""
forum_other = Forum(title="Test Forum 2", category_id=1)
forum_other.save()
topic_other = Topic(title="Test Topic 2")
post_other = Post(content="Test Content 2")
topic_other.save(user=topic.user, forum=forum_other, post=post_other)
assert not topic.merge(topic_other)
示例3: create_test_data
# 需要导入模块: from flaskbb.forum.models import Topic [as 别名]
# 或者: from flaskbb.forum.models.Topic import save [as 别名]
def create_test_data():
"""
Creates 5 users, 2 categories and 2 forums in each category. It also opens
a new topic topic in each forum with a post.
"""
create_default_groups()
create_default_settings()
# create 5 users
for u in range(1, 6):
username = "test%s" % u
email = "test%[email protected]" % u
user = User(username=username, password="test", email=email)
user.primary_group_id = u
user.save()
user1 = User.query.filter_by(id=1).first()
user2 = User.query.filter_by(id=2).first()
# create 2 categories
for i in range(1, 3):
category_title = "Test Category %s" % i
category = Category(title=category_title,
description="Test Description")
category.save()
# create 2 forums in each category
for j in range(1, 3):
if i == 2:
j += 2
forum_title = "Test Forum %s %s" % (j, i)
forum = Forum(title=forum_title, description="Test Description",
category_id=i)
forum.save()
# create a topic
topic = Topic()
post = Post()
topic.title = "Test Title %s" % j
post.content = "Test Content"
topic.save(post=post, user=user1, forum=forum)
# create a second post in the forum
post = Post()
post.content = "Test Post"
post.save(user=user2, topic=topic)
示例4: save
# 需要导入模块: from flaskbb.forum.models import Topic [as 别名]
# 或者: from flaskbb.forum.models.Topic import save [as 别名]
def save(self, user, forum):
topic = Topic(title=self.title.data)
post = Post(content=self.content.data)
if self.track_topic.data:
user.track_topic(topic)
return topic.save(user=user, forum=forum, post=post)
示例5: test_topic_merge
# 需要导入模块: from flaskbb.forum.models import Topic [as 别名]
# 或者: from flaskbb.forum.models.Topic import save [as 别名]
def test_topic_merge(topic):
"""Tests the topic merge method."""
topic_other = Topic(title="Test Topic Merge")
post = Post(content="Test Content Merge")
topic_other.save(post=post, user=topic.user, forum=topic.forum)
# Save the last_post_id in another variable because topic_other will be
# overwritten later
last_post_other = topic_other.last_post_id
assert topic_other.merge(topic)
# I just want to be sure that the topic is deleted
topic_other = Topic.query.filter_by(id=topic_other.id).first()
assert topic_other is None
assert topic.post_count == 2
assert topic.last_post_id == last_post_other
示例6: test_topic_save
# 需要导入模块: from flaskbb.forum.models import Topic [as 别名]
# 或者: from flaskbb.forum.models.Topic import save [as 别名]
def test_topic_save(forum, normal_user):
post = Post(content="Test Content")
topic = Topic(title="Test Title")
assert forum.last_post_id is None
assert forum.post_count == 0
assert forum.topic_count == 0
topic.save(forum=forum, post=post, user=normal_user)
assert topic.title == "Test Title"
# The first post in the topic is also the last post
assert topic.first_post_id == post.id
assert topic.last_post_id == post.id
assert forum.last_post_id == post.id
assert forum.post_count == 1
assert forum.topic_count == 1
示例7: save
# 需要导入模块: from flaskbb.forum.models import Topic [as 别名]
# 或者: from flaskbb.forum.models.Topic import save [as 别名]
def save(self, user, forum):
topic = Topic(title=self.title.data, content=self.content.data)
if self.track_topic.data:
user.track_topic(topic)
else:
user.untrack_topic(topic)
current_app.pluggy.hook.flaskbb_form_topic_save(form=self, topic=topic)
return topic.save(user=user, forum=forum)
示例8: create_test_data
# 需要导入模块: from flaskbb.forum.models import Topic [as 别名]
# 或者: from flaskbb.forum.models.Topic import save [as 别名]
def create_test_data():
create_default_groups()
# create 5 users
for u in range(1, 6):
username = "test%s" % u
email = "test%[email protected]" % u
user = User(username=username, password="test", email=email)
user.primary_group_id = u
user.save()
# create a category
category = Forum(is_category=True, title="Test Category",
description="Test Description")
category.save()
# create 2 forums in the category
for i in range(1, 3):
forum_title = "Test Forum %s " % i
forum = Forum(title=forum_title, description="Test Description",
parent_id=category.id)
forum.save()
# Create a subforum
subforum_title = "Test Subforum %s " % i
subforum = Forum(title=subforum_title,
description="Test Description", parent_id=forum.id)
subforum.save()
user = User.query.filter_by(id=1).first()
# create 1 topic in each forum
for i in range(2, 6): # Forum ids are not sequential because categories.
forum = Forum.query.filter_by(id=i).first()
topic = Topic()
post = Post()
topic.title = "Test Title %s" % (i-1)
post.content = "Test Content"
topic.save(user=user, forum=forum, post=post)
示例9: create_welcome_forum
# 需要导入模块: from flaskbb.forum.models import Topic [as 别名]
# 或者: from flaskbb.forum.models.Topic import save [as 别名]
def create_welcome_forum():
"""
This will create the `welcome forum` that nearly every
forum software has after the installation process is finished
"""
if User.query.count() < 1:
raise "You need to create the admin user first!"
user = User.query.filter_by(id=1).first()
category = Category(title="My Category", position=1)
category.save()
forum = Forum(title="Welcome", description="Your first forum",
category_id=category.id)
forum.save()
topic = Topic(title="Welcome!")
post = Post(content="Have fun with your new FlaskBB Forum!")
topic.save(user=user, forum=forum, post=post)
示例10: create_welcome_forum
# 需要导入模块: from flaskbb.forum.models import Topic [as 别名]
# 或者: from flaskbb.forum.models.Topic import save [as 别名]
def create_welcome_forum():
"""This will create the `welcome forum` with a welcome topic.
Returns True if it's created successfully.
"""
if User.query.count() < 1:
return False
user = User.query.filter_by(id=1).first()
category = Category(title="My Category", position=1)
category.save()
forum = Forum(title="Welcome", description="Your first forum",
category_id=category.id)
forum.save()
topic = Topic(title="Welcome!")
post = Post(content="Have fun with your new FlaskBB Forum!")
topic.save(user=user, forum=forum, post=post)
return True
示例11: insert_mass_data
# 需要导入模块: from flaskbb.forum.models import Topic [as 别名]
# 或者: from flaskbb.forum.models.Topic import save [as 别名]
def insert_mass_data(topics=100, posts=100):
"""Creates a few topics in the first forum and each topic has
a few posts. WARNING: This might take very long!
Returns the count of created topics and posts.
:param topics: The amount of topics in the forum.
:param posts: The number of posts in each topic.
"""
user1 = User.query.filter_by(id=1).first()
user2 = User.query.filter_by(id=2).first()
forum = Forum.query.filter_by(id=1).first()
created_posts = 0
created_topics = 0
if not (user1 or user2 or forum):
return False
# create 1000 topics
for i in range(1, topics + 1):
# create a topic
topic = Topic()
post = Post()
topic.title = "Test Title %s" % i
post.content = "Test Content"
topic.save(post=post, user=user1, forum=forum)
created_topics += 1
# create 100 posts in each topic
for j in range(1, posts + 1):
post = Post()
post.content = "Test Post"
post.save(user=user2, topic=topic)
created_posts += 1
return created_topics, created_posts
示例12: insert_mass_data
# 需要导入模块: from flaskbb.forum.models import Topic [as 别名]
# 或者: from flaskbb.forum.models.Topic import save [as 别名]
def insert_mass_data():
"""
Creates 100 topics in the first forum and each topic has 100 posts.
"""
user1 = User.query.filter_by(id=1).first()
user2 = User.query.filter_by(id=2).first()
forum = Forum.query.filter_by(id=1).first()
# create 1000 topics
for i in range(1, 101):
# create a topic
topic = Topic()
post = Post()
topic.title = "Test Title %s" % i
post.content = "Test Content"
topic.save(post=post, user=user1, forum=forum)
# create 100 posts in each topic
for j in range(1, 100):
post = Post()
post.content = "Test Post"
post.save(user=user2, topic=topic)
示例13: topic_moderator
# 需要导入模块: from flaskbb.forum.models import Topic [as 别名]
# 或者: from flaskbb.forum.models.Topic import save [as 别名]
def topic_moderator(forum, moderator_user):
topic = Topic(title="Test Topic Moderator")
post = Post(content="Test Content Moderator")
return topic.save(forum=forum, user=moderator_user, post=post)
示例14: create_test_data
# 需要导入模块: from flaskbb.forum.models import Topic [as 别名]
# 或者: from flaskbb.forum.models.Topic import save [as 别名]
def create_test_data(users=5, categories=2, forums=2, topics=1, posts=1):
"""Creates 5 users, 2 categories and 2 forums in each category.
It also creates a new topic topic in each forum with a post.
Returns the amount of created users, categories, forums, topics and posts
as a dict.
:param users: The number of users.
:param categories: The number of categories.
:param forums: The number of forums which are created in each category.
:param topics: The number of topics which are created in each forum.
:param posts: The number of posts which are created in each topic.
"""
create_default_groups()
create_default_settings()
data_created = {'users': 0, 'categories': 0, 'forums': 0,
'topics': 0, 'posts': 0}
# create 5 users
for u in range(1, users + 1):
username = "test%s" % u
email = "test%[email protected]" % u
user = User(username=username, password="test", email=email)
user.primary_group_id = u
user.activated = True
user.save()
data_created['users'] += 1
user1 = User.query.filter_by(id=1).first()
user2 = User.query.filter_by(id=2).first()
# lets send them a few private messages
for i in range(1, 3):
# TODO
pass
# create 2 categories
for i in range(1, categories + 1):
category_title = "Test Category %s" % i
category = Category(title=category_title,
description="Test Description")
category.save()
data_created['categories'] += 1
# create 2 forums in each category
for j in range(1, forums + 1):
if i == 2:
j += 2
forum_title = "Test Forum %s %s" % (j, i)
forum = Forum(title=forum_title, description="Test Description",
category_id=i)
forum.save()
data_created['forums'] += 1
for t in range(1, topics + 1):
# create a topic
topic = Topic(title="Test Title %s" % j)
post = Post(content="Test Content")
topic.save(post=post, user=user1, forum=forum)
data_created['topics'] += 1
for p in range(1, posts + 1):
# create a second post in the forum
post = Post(content="Test Post")
post.save(user=user2, topic=topic)
data_created['posts'] += 1
return data_created
示例15: insert_bulk_data
# 需要导入模块: from flaskbb.forum.models import Topic [as 别名]
# 或者: from flaskbb.forum.models.Topic import save [as 别名]
def insert_bulk_data(topic_count=10, post_count=100):
"""Creates a specified number of topics in the first forum with
each topic containing a specified amount of posts.
Returns the number of created topics and posts.
:param topics: The amount of topics in the forum.
:param posts: The number of posts in each topic.
"""
user1 = User.query.filter_by(id=1).first()
user2 = User.query.filter_by(id=2).first()
forum = Forum.query.filter_by(id=1).first()
last_post = Post.query.order_by(Post.id.desc()).first()
last_post_id = 1 if last_post is None else last_post.id
created_posts = 0
created_topics = 0
posts = []
if not (user1 or user2 or forum):
return False
db.session.begin(subtransactions=True)
for i in range(1, topic_count + 1):
last_post_id += 1
# create a topic
topic = Topic(title="Test Title %s" % i)
post = Post(content="First Post")
topic.save(post=post, user=user1, forum=forum)
created_topics += 1
# create some posts in the topic
for j in range(1, post_count + 1):
last_post_id += 1
post = Post(content="Some other Post", user=user2, topic=topic.id)
topic.last_updated = post.date_created
topic.post_count += 1
# FIXME: Is there a way to ignore IntegrityErrors?
# At the moment, the first_post_id is also the last_post_id.
# This does no harm, except that in the forums view, you see
# the information for the first post instead of the last one.
# I run a little benchmark:
# 5.3643078804 seconds to create 100 topics and 10000 posts
# Using another method (where data integrity is ok) I benchmarked
# these stats:
# 49.7832770348 seconds to create 100 topics and 10000 posts
# Uncomment the line underneath and the other line to reduce
# performance but fixes the above mentioned problem.
#topic.last_post_id = last_post_id
created_posts += 1
posts.append(post)
# uncomment this and delete the one below, also uncomment the
# topic.last_post_id line above. This will greatly reduce the
# performance.
#db.session.bulk_save_objects(posts)
db.session.bulk_save_objects(posts)
# and finally, lets update some stats
forum.recalculate(last_post=True)
user1.recalculate()
user2.recalculate()
return created_topics, created_posts