-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
主题模块主题相关设计演进文档主题相关设计演进文档
Description
目前的基本设计如下:
class Post(BaseModel,SoftDeleteMixin):
# 显示指定主键 设计成 uuid 是为了避免被直接遍历爬取
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
node = models.ForeignKey(Node, verbose_name="节点", on_delete=models.PROTECT)
creator = models.ForeignKey(WepostUser, verbose_name="创建者", on_delete=models.PROTECT)
title = models.CharField("标题", max_length=128)
content = models.TextField("内容",max_length=40960)
content_rendered = models.TextField("渲染内容",max_length=81920, default='')
# 运营相关
order = models.IntegerField("排序",default=0)
# 回复相关冗余
last_reply_by = models.CharField("最后回复人",max_length=150, blank=True, default='')
last_touched = models.DateTimeField(auto_now=True, verbose_name='最后活跃')
reply_count = models.PositiveIntegerField("回复数", default=0)
# 统计相关数据
like_count = models.PositiveIntegerField("喜欢数", default=0)
dislike_count = models.PositiveIntegerField("不喜欢数", default=0)
fav_count = models.PositiveIntegerField("收藏数", default=0)
share_count = models.PositiveIntegerField("分享数", default=0)
member_view_count = models.PositiveIntegerField("会员浏览数", default=0)
other_view_count = models.PositiveIntegerField("网页浏览数", default=0)值得说明的是
- 从
BaseModel继承了created,updated字段。 - 从
SoftDeleteMixin继承了_deleted_at字段,此字段用于记录对应文章是否被软删除了。 - 文章内容目录主要支持 markdown格式,
content主要用来保存原始的编辑内容,而 content_rendered 缓存 渲染成的 html 格式文档。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
主题模块主题相关设计演进文档主题相关设计演进文档