📄 模型概览

Article模型是CMS的核心内容发布系统,提供完整的文章创建、管理、优化和发布功能。支持多级分类、标签系统、SEO优化、权限控制等全套内容管理功能。

✨ 核心功能特性

1. 完整的内容创作流程

  • 7种状态管理:从草稿到发布的完整工作流
    • 已入库 → 草稿 → 已提交 → 审核中 → 已通过 → 已发布
    • 已驳回、已归档状态
  • 富文本编辑:集成CKEditor5,支持图文混排
  • 自动保存:自动处理标题、SEO、URL等字段

2. 智能内容关联

  • 分类管理:必须选择所属分类
  • 标签系统
    • 关联标签:手动选择的关键词
    • 动态标签:标题自动分词匹配
    • 标题分词:自动从标题提取关键词
  • 百科关联:可关联相关Wiki词条
  • 前后导航:支持上一篇/下一篇关联

3. 高级SEO优化

  • 自动SEO生成:标题、描述、关键词自动处理
  • Open Graph集成:社交媒体分享优化
  • Twitter Cards支持:支持摘要和大图摘要两种卡片
  • 规范URL:防止重复内容
  • URL友好化:支持拼音转换的slug

4. 灵活的URL系统

  • 5种URL风格
     
    urlfront = [
        'model',      # 模型路径: /article/123.html
        'slug',       # 单级Slug: /news/123.html
        'moreslug',   # 多级Slug: /news/sports/123.html
        'random',     # 随机字符: /jklfdsa/1.html
        'custom'      # 自定义: /mycategory/myarticle/1.shtml
    ]
     
     
  • 子域名支持:分类可配置独立子域名
  • 全局DNS:支持多域名、内容到首页等DNS策略
  • 随机URL长度可配置

5. 权限与可见性控制

  • 多层次权限
    • 审核状态控制
    • 仅工作人员可见
    • 用户组访问控制
    • 评论权限管理
  • 内容保护:支持受限内容标记

6. 智能分词与关联

  • 标题自动分词:保存时自动提取关键词
  • 相关文章推荐:基于标签和分词的智能关联
  • 缓存优化:30天内标签匹配缓存

7. 模板与显示控制

  • 个性模板:可为每篇文章选择不同模板
  • 缩略图:自动处理图片路径
  • 拼音标题:自动生成标题拼音
  • 副标题支持:增强文章标题表现力

8. 评论系统集成

  • 通用关系集成:支持评论功能
  • 评论管理:可与评论模块无缝对接
  • 权限控制:可单独控制每篇文章的评论权限

🎯 后台使用指南

1. 创建新文章

步骤1:基础信息填写
 
标题:[必填] 文章主标题(自动去除首尾空格)
副标题:[选填] 补充说明或副标题
作者:[选填] 文章作者,留空时默认显示"匿名"
来源:[选填] 内容来源,默认"本站原创"
 
 
步骤2:内容编辑
  • 使用CKEditor5富文本编辑器
  • 支持图片上传、表格、代码高亮等
  • 内容自动保存草稿
  • 支持从Word粘贴保持格式
步骤3:分类与标签
 
所属分类:[必选] 选择文章分类(只能选择文章类型分类)
关联标签:[可选] 手动选择相关标签
动态标签:[自动] 系统根据标题自动匹配标签
标题分词:[自动] 保存时自动提取关键词并关联
 
 
步骤4:关联内容
 
相关百科:[可选] 关联相关的Wiki百科词条
上一篇:[可选] 手动设置上一篇导航
下一篇:[可选] 手动设置下一篇导航
 
 
步骤5:图片与模板
 
缩略图:[可选] 上传文章封面图
       模板中使用:{{ article.thumbimage.url|replace:"origin","thumbnail"|replace:".", "336x208." }}
个性模板:[可选] 从主题模板目录选择个性化模板
 
 
步骤6:SEO优化
 
SEO标题:[自动] 留空使用文章标题,建议≤60字符
SEO描述:[自动] 留空自动从内容提取,建议150-300字符
SEO关键词:[选填] 英文逗号分隔
URL标识:[自动] 自动生成拼音+时间戳+随机码
规范链接:[可选] 用于防止重复内容
Open Graph:[自动] 社交分享优化
 
 
步骤7:权限设置
 
审核状态:[必选] 选择文章状态
仅工作人员可见:[可选] 勾选后仅员工可查看
允许访问的用户组:[可选] 设置可访问的用户组
允许评论:[可选] 控制是否允许评论
推荐:[可选] 是否置顶显示
 
 
步骤8:保存发布
 
点击保存 → 系统自动处理SEO、URL、分词等 → 根据状态进入相应流程
 
 

2. URL配置说明

后台URL配置入口UrlStyle模型配置
可配置参数
 
urlfront: 路径风格(model/slug/moreslug/random/custom)
urlmid: 文章标识(id/hash)
urlsuffix: 后缀(.html/.shtml等)
customarticle: 自定义文章路径前缀
randomlength: 随机URL长度范围
 
 
生成示例
 
# 风格: slug, 标识: id, 后缀: .html
/news/123.html

风格: moreslug, 分类: 体育/篮球

/sports/basketball/456.html

风格: random, 长度: 6-8

/ab12cd3/789.html

风格: custom, 自定义: blog

/blog/2023/10/article-123.html

 
 
子域名支持
  • 分类可设置独立子域名
  • 文章URL自动使用子域名
  • 支持全局DNS配置

3. 工作流程

 
新建文章 → 已入库
    ↓
编辑内容 → 草稿状态
    ↓
提交审核 → 已提交 → 审核中
    ↓                        ↓
直接发布 → 已发布        审核通过 → 已发布
                          ↓
                      审核驳回 → 修改后重新提交
 
 
状态说明
  • 已入库(0):新创建文章默认状态
  • 草稿(1):编辑中,未提交审核
  • 已提交(2):已提交等待审核
  • 审核中(3):正在审核
  • 已通过(4):审核通过待发布
  • 已发布(99):已正式发布
  • 已驳回(5):审核未通过
  • 已归档(6):历史归档

4. 智能分词功能

自动流程
  1. 保存文章时自动提取标题关键词
  2. 与现有CutWord词库匹配
  3. 自动建立关联关系
  4. 用于相关文章推荐
相关文章获取
 
# 通过标签获取相关文章
articles, source = Article.getrelatedarticlesbytag(tag)

source: 'related'(缓存命中) 或 'none'(无相关)

 
 
缓存策略
  • 30天内标签匹配结果缓存
  • 通过filtered_articles字段存储关联文章
  • 减少数据库查询压力

5. 权限管理

三层权限控制
  1. 状态控制:控制文章可见性
  2. 用户组控制:限制特定用户组访问
  3. 员工控制:仅内部人员可见
特殊权限
 
# 查看受限内容权限

permissions = [ ("canviewrestricted", "可以查看受限内容"), ]

 
 

📊 字段说明速查

字段分组
字段名
说明
必填
默认值
基础信息
title
文章标题
-
 
subtitle
副标题
 
author
作者
 
source
来源
本站原创
 
content
正文内容
分类标签
category
所属分类
-
 
relatedtags
关联标签
 
filteredtags
动态标签
自动
 
cutkeywords
标题分词
自动
关联内容
relatedwikis
相关百科
 
previousobj
上一篇
null
 
nextobj
下一篇
null
媒体模板
thumbimage
缩略图
 
template
个性模板
 
pytitle
标题拼音
自动
SEO优化
metatitle
SEO标题
自动
文章标题
 
metadescription
SEO描述
自动
自动生成
 
metakeywords
SEO关键词
 
slug
URL标识
自动
拼音+时间戳
 
canonicalurl
规范链接
 
ogtitle
OG标题
自动
SEO标题
 
ogdescription
OG描述
自动
SEO描述
 
twittercardtype
Twitter卡片
summary
权限控制
status
审核状态
99(已发布)
 
staffonly
仅员工可见
False
 
allowedgroups
允许用户组
 
allowcomment
允许评论
True
统计导航
hits
点击量
自动
0
 
istop
是否推荐
False
 
createtime
创建时间
自动
当前时间
 
updatetime
更新时间
自动
当前时间
关联信息
editor
内容编辑
当前用户
 
comments
评论关联
自动
GenericRelation

🎨 模板使用技巧

1. 缩略图处理

 
{# 原图 #}
{{ article.thumb_image.url }}

{# 缩略图(替换路径) #} {{ article.thumbimage.url|replace:"origin","thumbnail"|replace:".", "336x208." }}

{# 示例:从 /upload/article/images/origin/xxx.jpg #} {# 变为:/upload/article/images/thumbnail/xxx336x208.jpg #}

 
 

2. URL生成

 
{# 获取详情页URL #}
<a href="{{ article.getabsolute_url }}">查看文章</a>

{# 获取active状态标识 #} {% if request.path contains article.getactive %} class="active" {% endif %}

 
 

3. 相关文章获取

 
{% for tag in article.relatedtags.all %}
  {% with related=tag.getrelatedarticlesbytag %}
    {% for relarticle in related.0 %}
      <a href="{{ relarticle.getabsoluteurl }}">{{ rel_article.title }}</a>
    {% endfor %}
  {% endwith %}
{% endfor %}
 
 

🔧 高级功能配置

1. DNS配置支持

 
# GlobalDNSConfig 支持三种模式:

1. disabled: 禁用

2. contenttohome: 内容映射到首页

3. global_site: 全局站点

 
 

2. 性能优化索引

模型已配置12个数据库索引,优化以下查询:
  • 分类+状态+时间组合查询
  • 单独时间降序查询
  • 点击量+状态查询
  • 标题模糊查询
  • 复合索引优化

3. 自动处理逻辑

  • 标题处理:自动去除首尾空格
  • SEO处理:自动生成标题、描述、关键词
  • URL处理:自动生成唯一slug
  • 分词处理:自动提取标题关键词
  • 缓存处理:30天标签匹配缓存

💡 最佳实践建议

  1. 标题优化
    • 保持标题简洁有力
    • 包含核心关键词
    • 副标题补充说明
  2. 分类规划
    • 建立清晰的分类体系
    • 合理使用多级分类
    • 分类与子域名结合使用
  3. 标签策略
    • 使用关联标签精准控制
    • 利用动态标签自动关联
    • 定期清理无用标签
  4. SEO优化
    • 自定义SEO标题和描述
    • 合理设置关键词
    • 确保URL唯一性
  5. 权限管理
    • 敏感内容设置访问限制
    • 合理使用用户组权限
    • 定期审核内容状态
  6. 性能优化
    • 启用缓存策略
    • 合理使用缩略图
    • 监控数据库索引效率
  7. URL策略
    • 根据业务选择URL风格
    • 保持URL结构一致性
    • 考虑SEO友好的URL格式
  8. 内容关联
    • 合理关联相关百科
    • 设置前后导航增强体验
    • 利用相关文章推荐提高留存
这个文章模型提供了从创作、管理、优化到发布的全流程解决方案,适用于新闻、博客、知识库、产品介绍等多种内容场景。